WordPress迁移至线上子域名后Polylang Pro插件文件找不到错误排查
Polylang自定义字符串文件迁移后找不到的问题排查与解决方案
可能原因及对应解决方法
1. 文件路径或权限不匹配
- 确认线上服务器中
polylang-custom-string-translations.php的存放路径和本地完全一致(比如是否在主题根目录、自定义插件目录或wp-content/mu-plugins下)。 - 检查文件权限:将文件权限设为
644,所在文件夹权限设为755——Linux服务器权限不足会直接导致WordPress无法读取文件。
2. 硬编码本地路径导致引用失败
- 排查本地代码中引用该文件的代码,若使用了本地绝对路径(如
C:\xampp\htdocs\local-site\...或/Users/xxx/local/...),替换为WordPress内置函数生成的路径:// 若文件在当前主题目录 require_once get_stylesheet_directory() . '/polylang-custom-string-translations.php'; // 若文件在插件目录 require_once WP_PLUGIN_DIR . '/your-plugin-folder/polylang-custom-string-translations.php';
3. Polylang加载顺序冲突
- 自定义字符串注册代码必须在Polylang Pro加载完成后执行,否则会因函数未定义触发错误。改用钩子延迟加载:
add_action('plugins_loaded', 'load_my_polylang_strings', 20); // 优先级20确保在Polylang之后加载 function load_my_polylang_strings() { if (function_exists('pll_register_string')) { require_once get_stylesheet_directory() . '/polylang-custom-string-translations.php'; } } - 额外加上
function_exists('pll_register_string')判断,避免Polylang未激活时的报错。
4. 文件名大小写不匹配
- Linux服务器严格区分文件名大小写,若本地文件名是
Polylang-Custom-String-Translations.php,线上上传成小写或大小写混乱,会导致文件找不到。确保线上文件名和本地完全一致。
5. 数据库配置残留本地路径
- 检查数据库中
wp_options表(注意前缀可能不同),查找是否有包含该文件路径的自定义配置项,若存在则替换为线上路径。 - 验证Polylang的字符串存储:查看
wp_options中的polylang_strings选项,确认没有本地环境的异常数据,必要时可以重新注册字符串。
内容的提问来源于stack exchange,提问作者Saad Rizwan
相关产品推荐
相关产品推荐

