已删除的页面仍在WordPress数据库中

时间:2016-07-27 作者:Kami

在用相同的永久链接永久删除了前一个页面后,如果没有在结尾添加“-2”,我仍然无法让页面保存其永久链接。我应该如何解决这个问题?

选择“快速编辑”并更改slug和save也不会更改永久链接。我不熟悉Wordpress编码,也不熟悉phpmyAdmin中的数据库。如果我必须处理不断变化的SQL,请以步骤和简单的方式给我建议。提前谢谢你。

3 个回复
SO网友:Krzysztof Grabania

有一个函数正在查找重复的帖子名称:wp_unique_post_slug.

此函数中有几个查询,其中之一是查找重复的帖子名称:SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type = %s AND ID != %d LIMIT 1. 若此查询将返回一些行,那个么函数将在帖子名称中添加后缀。因此,你必须有一些帖子,帖子名称和类型都相同,但帖子id与你正在编辑的这篇不同。

例如,您可以通过编辑此查询并在phpMyAdmin中执行它来检查这一点。这应该是这样的:SELECT post_name FROM wp_posts WHERE post_name LIKE "your_post_name%"你需要改变wp_ 到您的表前缀和your_post_name 到您的帖子名称(百分号很重要)

wp_unique_post_slug on trac

SO网友:Chi

您可以尝试像wp optimize这样的插件,但如果页面仍然被卡住,听起来您的数据库对于该页面处于奇怪的状态。

您需要登录到您的站点主机,然后打开phpmyAdmin来查找WordPress数据库的名称。

单击数据库名称旁边的“+”展开表。如果您只安装了一个WordPress实例,当您找到正确的数据库时,您将看到一个名为“posts”的表。为了安全起见,有时会向其添加一些随机字符,因此它看起来像“sdfjedsposts”,而不仅仅是“posts”。

现在单击phpmyAdmin中右侧窗格顶部的“SQL”选项卡。在框内,粘贴以下SQL查询:

select * from <posts_table_name> where post_title=\'<permalink>\' and post_type=\'page\'
用于<posts_table_name> 键入后缀为“posts”的表的名称<permalink>, 使用其permalink不断向其添加-2的页面的名称。不要使用整个url,只使用页面名称。例如,对于http://www.example.com/pagename, 您只能使用pagename.对于SQL,保留单引号,但不要使用尖括号。

它应该返回包含页面信息的单行,并提供删除该行的选项。单击“删除”,该页面将从数据库中永久清除。

SO网友:MikeiLL

进入数据库并删除帖子,即使这些帖子被丢弃或“删除”,它们仍可能存在。

可能需要从以下内容开始:

select * from wp_posts where post_name like \'%the-slug%\';
那么

delete from wp_posts where post_name like \'%the-slug%\';

delete from wp_posts where post_name = \'the-slug\';

相关推荐

Force pretty permalinks?

我正在构建一个插件,该插件将用于单个站点,并依赖于add_rewrite_rule 要工作,需要打开永久链接。打开它们并不困难,因为它只是一个站点,但我担心其中一个管理员可能会在不知道自己在做什么的情况下关闭它,并破坏该站点。如何以编程方式强制保持漂亮的永久链接?