通过phpMyAdmin更新待定帖子的插件(URL)

时间:2018-01-22 作者:Advanced SEO

我需要通过phpMyAdmin删除挂起的大量帖子。大多数挂起的帖子都有与帖子标题不同的slug/URL,删除帖子slug/URL将迫使WP在发布帖子时生成新的slug(然后作为帖子标题)。

为了测试,我试图通过phpMyAdmin手动删除一些挂起帖子中的slug,然后通过WP发布它,新的slug是从帖子标题生成的。现在,我只需要SQL函数/查询。

所以,我只需要从帖子和挂起的帖子中删除slug。

我想应该是这样的:

UPDATE wp_posts SET post_name = \'\' WHERE post_status = \'pending\' AND post_type = \'post\';
有人能验证一下吗(或者如果需要的话修复一下)?

1 个回复
最合适的回答,由SO网友:swissspidy 整理而成

使用该SQL查询的一个缺点是,只有在真正编辑帖子时才会更新slug。此外,当任何插件试图用空的slug执行某些操作时,它可能会导致奇怪的行为。

一个好的替代方法是使用WP-CLI。

首先,您需要所有待处理帖子的列表:

wp post list --post_type=post --post_status=pending --format=ids
接下来,您需要一种方法来移除帖子的slug:

wp post update <id> --post_name=""
现在你可以combine these commands 像这样:

wp post update $(wp post list --post_type=post --post_status=pending --format=ids) --post_name=""
这样,后期更新将通过WordPress的内部API进行,而不仅仅是SQL。

结束

相关推荐

A MySQL DB within a MySQL DB

我有一个客户不想切换托管提供商。此提供程序只允许每个客户端有一个数据库。我正在为客户端设置一个沙盒,不希望在沙盒和生产网站之间共享数据库。我可以在沙盒网站的数据库中放置数据库吗?如果是这样的话,我希望得到一些关于如何做到这一点以及如何让WordPress访问嵌套数据库的建议。