TranslatePress 是否无法正常工作?虽然这种情况很少见,但事情可能并不总是按预期进行。以下列出了可能出现的最常见问题以及如何解决这些问题。
如果您找不到所需内容,请查看常见问题解答页面
错误信息
WordPress 中常见的错误是500 内部服务器错误(有时是白页或“网站遇到技术问题。”)。此错误可能如下图所示。
WordPress 中的内部服务器错误可能是由插件或主题功能、损坏的 .htaccess 文件或 PHP 内存限制引起的。
调试
要开始调试此错误,我们需要看看是否可以获得有关该错误的更多信息。
我们可以找到有关错误的更多信息的第一种方法是在 wp_config.php 中将 WP_DEBUG 设置为 true。请按照以下步骤操作:
- 通过 FTP 访问您的网站
- 打开名为 wp-config.php 的文件
- 找到 define(‘WP_DEBUG’, false); 的行
- 将 false 更改为 true 并保存文件
下次刷新出现错误的页面时,您应该会看到有关错误消息的更多信息,这将有助于排除故障。如果该行已设置为,则true
可能是有另一个插件或服务器配置抑制了错误输出。
我们还可以通过检查 PHP 错误日志中是否有任何 PHP 错误来找到有关此错误的更多信息。
增加WordPress内存限制
安装 WordPress 时,默认内存限制通常设置为 64MB。但是,随着您安装插件、主题和其他 WordPress 附加组件,您网站的内存使用量可能会增加。如果您的网站的内存使用量超出默认限制,您可能会开始遇到各种性能问题,包括加载时间缓慢、错误消息,甚至网站崩溃。
要增加 WordPress 内存限制,您通常需要修改网站的 wp-config.php 文件或联系您的网站托管服务提供商来请求增加。
- 通过 FTP 访问您的网站
- 打开名为 wp-config.php 的文件
- 您需要将此代码粘贴到 wp-config.php 文件中“就这样,停止编辑!祝您博客愉快”这行代码之前。
define( 'WP_MEMORY_LIMIT', '256M' );
- 保存文件
您现在可以访问您的 WordPress 网站,并且内存耗尽错误应该会消失。
注意:如果此解决方案对您不起作用,则意味着您的网络托管服务提供商不允许 WordPress 增加 PHP 内存限制。您需要要求您的网络托管服务提供商手动增加您的 PHP 内存限制。
检查损坏的 .htaccess 文件损坏的
.htaccess
文件可能会导致您的网站出现问题,例如出现错误页面或链接断开。以下是检查损坏文件的步骤
.htaccess
:
- 通过托管服务提供商提供的 FTP 客户端或文件管理器访问您网站的根目录。
- 在根目录中查找该
.htaccess
文件。如果找不到,请确保您已启用查看隐藏文件的选项。 - 将该文件的副本下载
.htaccess
到您的计算机,然后将其从您的网站的根目录中删除。 - 尝试访问您的网站,看看问题是否已解决。如果已解决,则问题可能是由损坏的
.htaccess
文件引起的。 - 要创建新
.htaccess
文件,请转到 WordPress 仪表板,然后导航至“设置”>“永久链接”。单击“保存更改”按钮,WordPress 将为.htaccess
您生成一个新文件。
如果在删除文件并生成新文件后仍然遇到问题.htaccess
,则可能是由其他问题引起的,您应该联系托管服务提供商或 WordPress 支持以获得进一步的帮助。
询问您的托管服务提供商
如果您无法解决错误,请联系您的主机提供商团队,他们将能够检查服务器日志并找出错误的根本原因。
确保已启用漂亮的永久链接并正常运行。https ://wordpress.org/support/article/using-permalinks/#using-pretty-permalinks您知道它们无法正常工作,因为 WordPress 通常会接管 404 页面,并向用户提供一个类似于您网站上的页面的错误信息。如果您的 404 错误页面直接来自服务器(您得到的只是“在此服务器上找不到请求的 URL /sample。”),则意味着它配置不正确。
注意: Pretty Permalinks 需要在服务器端进行配置才能正常工作。您可能没有启用 Apache 的 Mod Rewrite,或者 WordPress 无法使用重写规则写入其 .htaccess 文件。请尝试联系您的主机以进一步调试。
如果错误是白页(不是来自 WordPress 404 页面模板),则您的 .htaccess 可能包含服务器重写规则,这些规则只是将子目录(example.com/fr)定向到其他地方。
这通常是由于与 Gtranslate WordPress 插件及其子目录 URL 结构发生冲突而发生的。Gtranslate 插件将在 .htaccess 文件中添加额外的重写规则,以使此功能正常工作。
停用 Gtranslate 并激活 TranslatePress 将导致 TranslatePress 的辅助语言不起作用,并从 apache 服务器抛出“未找到”错误
为了快速解决问题,您只需编辑 .htaccess 文件并删除Gtranslate 配置部分。
当 WordPress 主题和插件之间的兼容性问题导致错误、功能损坏、内容缺失或网站崩溃时,就会发生主题和插件冲突。当 WordPress 主题的代码与插件的代码发生冲突,从而导致错误或意外行为时,就会发生主题冲突。另一方面,如果插件使用相同的功能或资源,或者一个插件修改了另一个插件所依赖的核心 WordPress 功能,就会发生插件冲突。
冲突测试
执行冲突测试是解决由插件或主题冲突引起的 WordPress 网站问题的重要步骤。以下是执行冲突测试需要遵循的步骤:
- 更新所有插件和主题:使用网站软件的最新版本有时可以解决冲突,因为更新的版本通常包含错误修复。
- 创建临时网站:临时网站是实时网站的精确副本,用于测试目的或进行更改而不影响实时网站。它允许开发人员试验和测试更改,而不会冒实时网站出错的风险。
- 禁用缓存:如果您的网站使用缓存,请禁用它以确保您正在测试实际网站而不是缓存版本。
- 停用所有插件:停用 WordPress 网站上的所有插件。您可以转到插件页面并选择所有插件,然后从批量操作下拉菜单中选择停用。
- 切换到默认主题:将您的主题更改为默认的 WordPress 主题,例如 Twenty Twenty-Two,以消除由主题引起的任何冲突。
- 测试网站:检查您的网站,看看问题是否已解决。如果问题已解决,则是由插件或主题冲突引起的。
- 激活插件:逐个激活每个插件,每次激活后,检查网站是否出现问题。如果在激活特定插件后问题再次出现,则该插件导致了冲突。
- 重新激活主题:确定有问题的插件后,重新激活所有其他插件并切换回原始主题。然后,停用有问题的插件并检查问题是否已解决。
通过执行以下步骤,您可以确定冲突的根源并采取必要的步骤来解决问题。请记住保持所有插件和主题为最新版本,以防止将来发生冲突。
在 WordPress 中,PHP 错误日志是包含有关 WordPress 网站的 PHP 代码中发生的任何错误或警告的信息的文件。这些日志对于解决 WordPress 网站的问题很有用。
如何启用 WordPress 调试模式
要为 WordPress 启用 PHP 错误日志,您需要使用 FTP 连接到您的网站,然后编辑 wp-config.php 文件
打开此文件后,您需要在文本“就这样,停止编辑!祝您发布愉快”之前添加以下代码行。
define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); /* 就这些,停止编辑!祝您发布愉快。*/
此代码将在 WordPress 中启用调试模式并将任何 PHP 错误写入日志文件。注意:如果该文件中已经有“WP_DEBUG”和“WP_DEBUG_LOG”,则无需执行上述步骤,只需确保它们设置为 true 即可。
在哪里查看 WordPress 错误日志
启用 WordPress 调试模式后,您需要转到“wp-content”目录以找到“debug.log”文件(再次通过 FTP 连接到您的网站),然后右键单击此文件并选择查看/编辑文件。
访问错误日志文件后,您将能够查看错误消息以及其相应的日期和时间戳。
需要注意的是,在生产网站上启用调试模式可能会带来安全风险,因为它可能会泄露有关网站配置和漏洞的敏感信息。一旦找到所需信息,请务必
禁用调试模式。
要禁用调试模式,您只需将 WP_DEBUG 和 WP_DEBUG_LOG 行设置为“false”。
define( 'WP_DEBUG', false ); define( 'WP_DEBUG_LOG', false ); /* 就这些,停止编辑!祝您发布愉快。*/
如果您没有通过 FTP 连接到您的网站的经验,或者您无法成功查看 PHP 错误日志,请联系您的托管服务提供商并向他们寻求有关方面的帮助。
如果您以前使用过 GTranslate 插件,则发生此问题时可能是由于某些 .htaccess 重写规则。此插件似乎向文件添加了新规则,这些规则在删除插件时不会被清除。如果您选择在之后使用它,这些规则会破坏 TranslatePress 的工作方式。
请尝试删除 GTranslate 配置部分(它看起来应该与以下代码类似)并且一切都应该按预期工作:### BEGIN GTranslate config ### RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /$1/$3 [R=301,L] RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)/(.*)$ /wp-content/plugins/gtranslate/url_addon/gtranslate.php?glang=$1&gurl=$2 [L,QSA] RewriteRule ^(af|sq|am|ar|hy|az|eu|be|bn|bs|bg|ca|ceb|ny|zh-CN|zh-TW|co|hr|cs|da|nl|en|eo|et|tl|fi|fr|fy|gl|ka|de|el|gu|ht|ha|haw|iw|hi|hmn|hu|is|ig|id|ga|it|ja|jw|kn|kk|km|ko|ku|ky|lo|la|lv|lt|lb|mk|mg|ms|ml|mt|mi|mr|mn|my|ne|no|ps|fa|pl|pt|pa|ro|ru|sm|gd|sr|st|sn|sd|si|sk|sl|so|es|su|sw|sv|tg|ta|te|th|tr|uk|ur|uz|vi|cy|xh|yi|yo|zu)$ /$1/ [R=301,L] ### END GTranslate config ###
有些字符串可能无法通过我们的可视化界面点击。
如果是这种情况,您应该尝试在翻译界面顶部当前语言下的字符串列表中寻找它们。
如果翻译页面中缺少文本,请尝试通过激活选项
“修复缺少的动态内容” (位于
“设置”->“TranslatePress”->“高级”选项卡)来修复此问题。
如果您在使用 Google API 密钥时遇到问题,请确保您正确遵循我们的指南来生成密钥。
在步骤 4时要格外小心,因为大多数情况下这都是导致问题的原因。
如果网站的翻译部分有页面标题(或帖子标题、自定义帖子类型标题)为空或损坏,您需要尝试做的第一件事是转到
TranslatePress -> 设置 -> 高级 -> 禁用帖子标题的帖子容器标签并启用它。
如果您发现翻译版本的页面出现问题(按钮无法点击、图片无法显示等),请尝试
故障排除选项。
如果您的翻译页面中的文本闪烁,请尝试通过激活选项
“修复缺少的动态内容” (位于“设置”->“TranslatePress”->“高级”选项卡)来修复此问题。
如果您的网站由 WP Engine 托管,您可以通过将以下内容添加到您的网站来使其正常运行wp-config.php
:
define( 'WPE_GOVERNOR', false );
如果您有 Smush 插件,请转到
Smush 设置 -> Lazy Load选项卡并
停用此功能。
如果您点击了保存按钮,但没有收到“已保存”确认信息,请确保您通过 HTTPS 访问网站。有时 HTTP 未设置为重定向至 HTTPS,这可能会导致插件的某些部分出现问题。
如果网站的翻译部分包含指向不同帖子/页面的链接,并且所有链接都指向同一个帖子/页面,则首先要检查的是您是否使用重复页面插件创建了这些帖子/页面。
如果您创建帖子/页面,翻译其 slug,然后复制它,则任何对重复帖子/页面的引用都会将您重定向到原始帖子/页面,即使链接指向重复的页面。
要解决此问题,请打开 TranslatePress 的前端并转到字符串翻译 -> 帖子 slug。手动翻译受影响帖子/页面的每个 slug。
sprintf ()函数在 WordPress 中用于将 gettext 字符串(如“Hello %s”)替换为“Hello John”。基本上是用不应翻译的动态字符串替换 %s。例如,姓名或号码。
此错误意味着有一个 gettext 字符串翻译不正确,例如不包含 %s。因此,它不是翻译“Ola %s”,而是翻译为“Ola”,从而引发错误。
要解决此问题,您需要找到正在翻译的确切字符串,并将其从 TranslatePress -> 设置 -> 高级 -> 排除 Gettext 字符串中的 gettext 翻译中排除。
在这种情况下,您需要转到该文件和号码,查看其中正在翻译的 gettext 字符串,并将其排除。如果这不起作用,您可能需要从 WordPress 自动附带的 .po 文件中删除翻译(翻译可能错误),您可以使用 LocoTranslate 等插件来执行此操作。