如何批量删除WordPress自定义栏目

WordPress自定义栏目(自定义域)功能强大,很多主题和插件通过添加自定义栏目来实现一些特殊功能和效果,比如比较常用的日志浏览统计插件WP-PostViews也会向数据库写入自定义栏目:views,如果你没有正常卸载,会在数据库中成为垃圾数据。

方法一:操作数据库批量删除

如果你的文章较多手动删除这些自定义栏目不现实,其实只要执行一句SQL命令,就可批量删除这些自定义栏目添加的数据表。本文以删除多说评论残留在数据库的自定义栏目:duoshuo_thread_id和duoshuo_status为例说明,数据库是衡天主机的数据库。

删除自定义栏目的SQL命令为:

DELETE FROM wp_postmeta WHERE meta_key = "自定义栏目名称";

其中wp_postmeta中的wp为默认,如修改了前缀要跟着修改;自定义栏目名称可以在编辑文章的自定义栏目下拉列表中查看。

具体操作步骤如下:

首先登录你的phpMyAdmin数据库,点击我们的数据库后再点击上面的“SQL”,接着在图中所示的B区输入删除自定义栏目的SQL命令,并点击“执行”即可。如本文删除多说评论的自定义栏目命令如下:

DELETE FROM wp_postmeta WHERE meta_key = "duoshuo_status";
DELETE FROM wp_postmeta WHERE meta_key = "duoshuo_thread_id";

执行该命令后,会出现“# 影响了 4 行”的结果,说明已经删除成功。我们也可以在WordPress后台编辑文章页面自定义栏目下拉列表中查看刚才的命令是否将该自定义栏目名称删除了。

重要提示:操作数据库有风险,请提前做好备份,以防万一。

方法二:

将下面的代码添加到当前主题functions.php中:

global $wpdb;

$wpdb->query( "
DELETE FROM $wpdb->postmeta
WHERE `meta_key` = '自定义栏目名称'
" );

之后,指定删除的自定义栏目会自动从数据库中被清理掉。该代码运行一次就够了,没有必要留在主题中,用后删除即可。

另外,如果你准备修改已存在的WordPress自定义栏目名称,将以下代码添加到主题 functions.php 文件中:

global $wpdb;

$wpdb->query( "
UPDATE `wp_postmeta`
SET `meta_key` = 'NEW NAME'
WHERE `meta_key` = 'OLD NAME'
" );

替换上面代码中新的自定义栏目名称和原自定义栏目名称。

您可以在文章编辑页面添加和删除自定义栏目,但不能重命名。虽然可以到数据库中修改,但操作数据库有风险,上面的一段代码可以让你在不需要进数据库的情况下,在前端直接修改自定义栏目名称。

注:重命名后,请立即从主题functions.php文件中删除这段代码,只在需要时添加运行此代码,没有必要让这段代码保留在你的主题中。