为什么我看不到我的帖子?我只看到“抱歉,没有符合您条件的帖子”?

清除浏览器缓存和 Cookie 可能会解决此问题。此外,请检查您的 search.php 和 index.php 模板文件是否有错误。

另请参阅:

如何获取更多帮助?

除了这些 常见问题解答 (FAQ) 之外,还有各种资源可以帮助您找到更多 WordPress 方面的帮助。

我遇到的 CSS 问题在哪里可以找到帮助?

以下是可以帮助您排查和解决许多 CSS 问题的文章:

为什么我会收到关于“发送引用源 (Referrers)"的错误消息?

如果您在尝试保存帖子时收到此消息,请考虑检查 管理 > 设置 > 常规,并确保您的WordPress 地址 (URI)和博客地址 (URI)不使用“www”。例如,在这些字段中,请使用 https://example.com 而不是 https://www.example.com。

另请参阅:

如何清空数据库表?

另请参阅:

如何解决以下错误:SQL/DB 错误 errcode 13 无法创建/写入文件?

问题:当使用 PHP 访问 MySQL 时,MySQL 变量 tmpdir 被设置为一个无法写入的目录。

要验证这一点,请在命令行中输入 MySQL 并键入 show variables;

您将获得一个长长的列表,其中一项将显示:tmpdir = /somedir/(无论您的设置如何)。

解决方案:修改 tmpdir 变量以指向可写入的目录。

步骤:

  1. 找到 my.cnf 文件。在 *nix 系统上,这通常位于 /etc/。在 Windows 系统上,请查找 my.ini。
  2. 找到后,用简单的文本编辑器打开它,并找到 [mysqld] 部分。
  3. 在此部分下,找到 tmpdir 行。如果此行被注释(以 # 开头),请删除 # 并编辑该行,使其显示为:tmpdir = /writable/dir,其中 /writable/dir 是一个您可以写入的目录。有些人使用 /tmp,或者您也可以尝试 /var/tmp 或 /usr/tmp。在 Windows 上,请使用 C:/Windows/tmp。
  4. 保存文件。
  5. 通过键入 mysqlshutdown -u -p shutdown 关闭 MySQL。
  6. 进入 MySQL 目录并键入 ./bin/safe_mysqld & 来启动 MySQL。通常,MySQL 目录位于 /usr/local,有时在 Linux 系统上也位于 /usr/。

如果以上这些都难以理解,并且您有专人为您管理系统,请将上述内容展示给他们,他们应该能够解决。

描述:您的浏览器会显示警告消息:

Warning: Cannot modify header information – headers already sent by (output started at

原因和解决方案:

通常是因为在打开 <!--?php &lt;/code&gt;&lt;/strong&gt; 标签之前或关闭的 &lt;strong&gt;&lt;code&gt;?--> 标签之后有空格、换行符或其他内容,通常位于 wp-config.php 中。这也可能适用于其他文件,因此请查看错误消息,因为它将列出发生错误的特定文件名(见下文“解释错误消息”)。用最近的备份或新鲜下载的 WordPress 中的文件替换有问题的文件是最好的选择,但如果上述两种方法都不行,请按以下步骤操作。

仅仅因为您什么都看不到并不意味着 PHP 看到的也一样。

  1. 通过 FTP 或主机控制面板中提供的文件管理器下载错误消息中提到的文件。
  2. 用 纯文本编辑器(不是 MS Word 或类似软件。记事本或 BBEdit 可以)打开该文件。
  3. 检查非常第一个字符后面没有空行或空格。
  4. 在保存之前,或使用“另存为”对话框,确保文件编码不是 UTF-8 BOM,而是纯 UTF-8 或任何不带 BOM 后缀的编码。

为了确保文件的结尾,请执行以下操作:

  1. 将光标放在 ? 和 > 之间
  2. 现在按下计算机上的 DELETE 键注意给 Mac 用户:PC 上的“DELETE”键删除光标右侧的字符。即此处注明的键。
  3. 按住该键
  4. 至少 15 秒
  5. 现在键入 >
  6. 保存,不要按任何其他键。
  7. 如果您按下另一个键,问题会重现。
  8. 不要将代码放在不必要的代码块中,将它们放在单个 PHP 块中。

错误:

<?php
some code;
?>

<?php
some other codes;
?>

正确:

<?php
code;

some other code;
?>

编辑并保存文件后,将其上传回服务器。

注意:还要检查文件的编码。如果文件以 UTF-8 加 BOM 编码,BOM 被视为一个字符,该字符启动输出。

解释错误消息:

如果错误消息显示:Warning: Cannot modify header information - headers already sent by (output started at /path/blog/wp-config.php:34) in /path/blog/wp-login.php on line 42,那么问题出在 wp-config.php 的第 #34 行,而不是 wp-login.php 的第 #42 行。在这种情况下,wp-login.php 的第 #42 行是受害者。它受到 wp-config.php 第 #34 行的多余空白的影响。

如果错误消息显示:Warning: Cannot modify header information - headers already sent by (output started at /path/wp-admin/admin-header.php:8) in /path/wp-admin/post.php on line 569,那么问题出在 admin-header.php 的第 #8 行,而不是 post.php 的第 #569 行。在这种情况下,post.php 的第 #569 行是受害者。它受到 admin-header.php 第 #8 行的多余空白的影响。

可能导致该错误的其他问题:

如果您使用了函数:wp_redirect() 或尝试在头部(或任何内容)之后使用头部重定向,则会弹出此错误消息。如有需要,请使用 JavaScript 重定向。

为什么我的“发布”或“保存草稿”按钮不起作用?

为了解决此类问题,请逐个禁用您的插件,直到找到问题的根源。通常,这是由于两个或多个插件试图使用相同的资源(例如,JQuery 或其他基于 Java 的工具)。

此外,可能是您的浏览器存在问题。常见的解决方法是清空浏览器的缓存。请咨询您首选浏览器的文档以了解如何执行此操作。

为什么在使用 Apple Safari 浏览器时我看不到可视富文本编辑器或 Quicktag 按钮?

更新您的 Safari 浏览器。早期版本的 Safari 不受支持。

未收到电子邮件密码

描述:当用户尝试使用其用户名和/或电子邮件注册您的博客或更改密码时,WordPress 会显示他们的密码已发送电子邮件给他们,但从未收到。

原因与解决方案:WordPress 使用标准的 PHP mail() 函数,该函数使用 sendmail。无需账户信息。如果您使用的是托管服务,这通常不是问题;但如果您使用的是自己的服务器且没有 SMTP 服务器,邮件将无法发送。如果您使用的是 *NIX 系统,您的机器上应该安装 postfix 或 sendmail;您只需进行设置(在互联网上搜索教程)。如果您不想在 *NIX 系统上配置完整的邮件服务器,可能会发现 ssmtp 很有用——它提供了“一种安全、有效且简单地将邮件从系统发送到您的邮件枢纽的方法”。在 Windows 机器上,请尝试使用 sendmail 模拟器,例如 支持 TLS v1.2 的 Windows Fake sendmail。

更多帮助可以在 WordPress 支持论坛的这个讨论串中找到:WordPress 如何发送用户注册邮件?。对于基于插件的替代方案,您可以尝试 Configure SMTP:*“在 WordPress 中配置 SMTP 邮件发送,包括支持通过 SSL/TLS(如 GMail)发送邮件。”*

Windows 主机服务器特定:检查 SMTP 虚拟服务器的“中继”设置。授予 127.0.0.1 访问权限。然后在您的 php.ini 文件中,将 SMTP 设置设置为相同的 IP 地址。同时设置 smtp_port 为 25。

确保使用正确的回信地址:默认情况下,WordPress 邮件发送器会在“发件人”字段中填入 wordpress@example.com,并在“发件人名称”中填入 WordPress。

如果这是一个有效的电子邮件地址,这是可以的。例如,如果您的真实电子邮件是 wordpress@example.com,您的主机应该会转发该邮件以供投递。只要 example.com 配置为发送和接收邮件,它很可能会发送邮件,即使 wordpress 不是一个有效的邮箱。但是,如果您将您的真实电子邮件设置为发件人地址,且类似于 wordpress@example.com,邮件可能无法发送,因为 gmail.com 不是邮件服务器处理的域名。

被视为垃圾邮件:您的电子邮件消息可能被路由到垃圾邮件文件夹,甚至更糟,直接被当作恶意内容丢弃。您可以采取一些措施来说服收件人的邮件服务器,证明您的消息是合法的,并应按地址投递。

SPF:(发件人策略框架)这是最常用的反垃圾邮件措施。如果您使用的是托管系统,很有可能您的主机已为正在使用的邮件服务器设置了此功能。让 WordPress 给您发送邮件,并检查消息头以查看消息是否通过了 SPF 检查的凭证。您可以通过登录页面上的“忘记密码”链接发送消息。为了保留旧密码,请勿按照消息中的链接操作。

如果您的系统电子邮件未通过 SPF 检查,如果您可以访问 DNS 记录且邮件服务器的域名属于您,则可以设置凭据。检查您的系统发送的电子邮件的回信路径。如果列出的邮件服务器具有您的域名,则可以设置 SPF 凭据。互联网上有几个教程。

DKIM:(域密钥标识邮件)此系统也被使用。您可以在同一消息中同时使用 SPF 和 DKIM。同样,就像 SPF 一样,您可以通过检查邮件头来查看接收邮件服务器是否验证了您的主机域名密钥。很有可能没有提供签名密钥,表明您的主机选择不使用此协议。同样,如果您可以编辑 DNS 记录且邮件服务器属于您的域名,您可以自己设置 DKIM 凭据。如果在互联网上搜索,存在一些教程。

要让 WordPress 发送正确的 DKIM 密钥,请挂钩 'phpmailer_init' 操作。您将获得 $phpmailer 对象。设置必要的属性并返回该对象。有关更多信息,请参阅类源代码。它位于 wp-includes/class-phpmailer.php。

我在帖子中使用了 Quicktag nextpage,为什么不起作用?

在某些 主题(例如 WordPress Classic Theme)中,您可能会看到 <!–nextpage–> 在主页上正常工作,但在其他 主题(例如 WordPress 默认主题)中,单独查看帖子时可能只显示 分页符。可能需要更改您的主题的 模板 page.php 或 index.php 文件以使此功能按您的意愿工作。您需要添加以下内容:

<?php wp_link_pages(); ?>

MySQL 错误 28

原因可能是:

  • 您所在的 /tmp(无论 tmpdir 在哪里)空间已满,或者
  • 您在 /tmp 中的文件太多(即使有大量可用空间)

这是 MySQL 错误,与 WordPress 没有直接关系;您应该联系您的主机。一些用户报告说,在 phpMyAdmin 中运行“修复表”命令解决了问题。

为什么引号被转义或未转义?

如果您编写插件或制作高级自定义模板,最终可能会发现自己需要处理数据库中的数据。WordPress 通常 以数据立即可用的方式为您管理这些数据。不过也存在一些情况(特别是如果您在不使用 WordPress 的情况下直接处理数据库时)会出现奇怪的现象。

例如,引号不能直接存储在 MySQL 数据库中。MySQL 在其 SQL 语言中使用引号。当在帖子中使用引号并将帖子保存到数据库时,每个引号都会被转义。这意味着会添加一个反斜杠字符,表示下一个字符应作为输入的一部分,而不是 SQL 命令的一部分。

例如,如果您在帖子中添加以下内容:

...an article about "Happiness" is at
<a href="https://example.com/happy" title="Happiness">Happiness</a>
if you would like to read it...

实际上导入到数据库的样子是这样的:

...an article about \"Happiness\" is at
<a href=\"https://example.com/happy\" title=\"Happiness\">Happiness</a>
if you would like to read it...

从数据库中提取数据时,反斜杠可能不会自动移除。如果这成为一个问题,您可以对文本使用 stripslashes() PHP 函数。

描述:当任何人尝试在帖子上评论时,窗口变为空白,并且 WordPress 似乎没有识别该评论。

原因与解决方案:您使用的主题缺少评论表单的关键部分,因此 WordPress 不知道评论指的是哪个帖子。您需要检查主题中的 comment.php,并确保以下代码出现在表单内。

<input type="hidden" name="comment_post_ID" value="<?php echo $id; ?>" />

相关讨论串:

有时可能需要停用所有插件,但您无法访问管理菜单来执行此操作。有两种方法可以停用所有插件。

使用 phpMyAdmin 停用所有插件。

  1. 在 wp_options 表中,在 option_name 列(字段)中找到 active_plugins 行
  2. 将 option_value 字段更改为:a:0:{}

或者通过 FTP 或主机控制面板中提供的文件管理器重置插件文件夹。此方法保留插件选项,但需要手动重新激活插件。

  1. 通过 FTP 或主机的文件管理器,导航到 wp-contents 文件夹(目录)。
  2. 通过 FTP 或主机的文件管理器,将文件夹 plugins 重命名为 plugins.hold。
  3. 登录到您的 WordPress 管理插件页面 (/wp-admin/plugins.php) – 这将禁用任何“缺失”的插件。
  4. 通过 FTP 或主机的文件管理器,将 plugins.hold 重命名回 plugins。

在执行自动升级后如何清除“暂时无法访问,正在进行计划维护”消息?

作为自动升级的一部分,WordPress 会在博客 基础 文件夹(包含 wp-admin 文件夹的文件夹)中放置一个名为 .maintenance 的文件。如果该文件存在,访问者将看到消息 暂时无法访问,正在进行计划维护。请稍后再来。

要停止向访问者显示该消息,只需删除 .maintenance 文件。应再次执行自动升级,以防其失败。

请注意,核心自动升级功能是在 版本 2.7 中添加的。

使用 Pretty Permalinks 时如何修复 404 错误?

如果在 Pretty Permalink(美观的永久链接)选项中选择Day and Name(天与名称)时出现 404 错误,这可能是由于未激活/安装mod_rewrite模块所致。解决方案是为 Apache Web 服务器激活mod_rewrite。检查 apache/conf/httpd.conf 文件中的行 # LoadModule rewrite_module modules/mod_rewrite.so,并删除该行前面的 #。然后停止 Apache 并重新启动它。注意:您可能需要要求您的主机激活mod_rewrite。

另请参阅:

相关讨论线程:

不确定为什么会出现此问题,但这里有一些可以尝试的解决方案。

这通常可以修复问题:

  1. 创建一个新的管理员用户(例如 newadmin),角色为管理员
  2. 以‘newadmin’身份登录
  3. 将旧的‘admin’用户降级为订阅者角色并保存
  4. 将旧的‘admin’恢复为管理员角色并保存
  5. 以旧的‘admin’身份登录

如果那样不起作用,请尝试:

  1. 创建一个新的管理员用户(例如 newadmin),角色为管理员
  2. 以‘newadmin’身份登录
  3. 删除旧的‘admin’用户并将任何帖子分配给‘newadmin’
  4. 创建具有管理员角色的‘admin’用户
  5. 以‘admin’身份登录
  6. 删除‘newadmin’用户并将帖子分配给‘admin’

为什么博客上的帖子显示错误的作者名称?

此问题通常可以通过与前面一个问题中提出的相同解决方案来解决:
为什么在编辑帖子时管理员用户未列为作者?。

刚刚发布了更新,为什么我的博客不识别可用更新?

当发布更新时,会在顶部管理屏幕显示该发布的通知,内容为WordPress x.x.x 可用!请立即更新。并非所有博客都会在同一时间看到该消息。您的博客被编程为每 12 小时检查一次更新,但检查的时间是随机的。因此,如果您的博客在发布更新前几分钟刚刚检查过更新,您将不会看到更新消息,直到您的博客在 12 小时后再次检查更新。

如果您希望您的博客立即检查更新,您可以删除 wp_options表中的update_core选项名称记录。请注意,插件和主题各自拥有自己的检查和更新周期,由 wp_options中的记录update_plugins和update_themes控制。

相关讨论线程:

为什么在上次自动升级期间我丢失了对 WordPress 默认主题的自定义更改?

核心升级会将分发的所有新文件覆盖旧文件,因此如果您修改了 WordPress 默认主题中的现有文件(例如 wp-content/themes/twentysixteen/style.css),这些更改会被该文件的新版本覆盖。

请注意,核心升级会遍历 wp-admin/includes/update-core.php中定义的“旧文件”列表,并删除这些文件。不在列表中且不在分发中的文件将被保留。

请记住,在升级(无论是自动还是手动)之前,都应备份 WordPress 文件和数据库,具体说明见 WordPress 备份。

修改默认主题的更好方法是使用子主题。设置起来稍微复杂一些,但值得付出努力,因为当主主题更新时,您的自定义更改将是安全的。

另请参阅:

如何修复 MySQL 数据库表?

偶尔可能需要修复一个或多个 MySQL 数据库表。根据 dev.mysql.com 上如何修复 MyISAM 表,修复表的原因有很多,包括错误,例如"tbl_name.frm 被锁定无法更改"、"找不到文件 tbl_name.MYI (Errcode: nnn)"、"文件意外结束"、"记录文件已崩溃"或"从表处理器收到错误 nnn"。

以下是使用 phpMyAdmin 修复 MySQL 数据库中表的步骤:

  1. 登录到托管账户。
  2. 登录到 phpMyAdmin。
  3. 选择受影响的数据库。如果您只有一个数据库,它应该会默认选择该数据库,因此您无需做任何操作。
  4. 在主面板中,您应该看到您的数据库表的列表。勾选需要修复的表旁边的复选框。
  5. 在窗口底部、表列表下方有一个下拉菜单。选择“修复表”

请记住,始终建议拥有当前数据库备份。

另请参阅: