欢迎光临
我们一直在努力

WordPress删除重复的自定义字段(Custom Fields)

自定义字段(Custom Fields)为WordPress提供了非常有用的扩展功能。倡萌在本地测试主题调用最近浏览量最多的文章的时候,发现居然存在重复的文章,查看后发现,该文章存在两个同样的字段 views,如下图所示:

出现这种情况,可能是由于网站搬家的导出导入文章造成的,下面分享两种方法删除重复的自定义字段(只保留一个)。

重要提示:请先备份和下载网站的数据库文件,然后再使用下文的方法!

方法1:通过phpMyAdmin删除

登录的 phpMyAdmin 面板(不会的请先自己阅读 phpMyAdmin 相关文章),然后使用下面的 SQL 语句进行删除即可:

  1. delete from wp_postmeta
  2. where meta_id in (
  3. select *
  4. from (
  5. select meta_id
  6. from wp_postmeta a
  7. where a.meta_key = ‘views’
  8. and meta_id not in (
  9. select min(meta_id)
  10. from wp_postmeta b
  11. where b.post_id = a.post_id
  12. and b.meta_key = ‘views’
  13. )
  14. ) as x
  15. );

请根据自己的实际,修改第 1、6、10 行的 wp_postmeta 的前缀 wp_(如果你的数据库前缀不是wp_ 的话);本例的第 7 、12 行 的 views 就是要删除的自定义字段,请自行修改。

方法2:通过PHP代码删除

如果你没办法通过phpMyAdmin操作数据库,那你可以使用下面的方法。

1.在网站的根目录新建一个名为 remove-duplicate-custom-fields.php 文件,复制下面的代码到该文件,保存:

  1. <?php
  2. define(‘WP_USE_THEMES’, false);
  3. require(‘wp-blog-header.php’);
  4.  
  5. define( ‘WP_DEBUG_DISPLAY’, true );
  6. ini_set( ‘display_errors’, true );
  7. $allposts = get_posts(‘numberposts=-1&post_type=post&post_status=any’);
  8. $keys = array(‘views’,‘test_meta’);//要检索的自定义字段
  9. foreach ( $keys as $key ) {
  10. foreach( $allposts as $postinfo) {
  11. // 获取(上面所填写的)自定义字段的值
  12. $postmeta = get_post_meta($postinfo->ID, $key);
  13.  
  14. if (!empty($postmeta) ) {
  15. // 删除这篇文章的(上面所填写的)自定义字段
  16. delete_post_meta($postinfo->ID, $key);
  17.  
  18. // 插入一个且只有一个(上面所填写的)自定义字段
  19. update_post_meta($postinfo->ID, $key, $postmeta[0]);
  20. }
  21. }
  22. }
  23. ?>

注意修改第 8 行的字段,本例删除的是 ‘views’和’test_meta’ 两个字段,请自行修改(多个字段使用半角英文逗号隔开)。

2.通过浏览器访问 http://你的域名/remove-duplicate-custom-fields.php,稍等片刻,即可删除多余的重复字段啦!

打赏
这些信息可能会帮助到你: 加盟代理 | 软件问题答疑 | 网站装修推广 | 下单商城

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《WordPress删除重复的自定义字段(Custom Fields)》
文章链接:https://dk.tkcdk.cn/23032.html
免责声明:本站所有资源和软件均来自于互联网渠道,只整合营销类软件-简单趣味娱乐软件其他危害社会软件客户绕行-免开尊口共同打造健康营销-绿色的微商环境
请遵循相关法律法规合理使用,本站一切资源不代表本站立场如有侵权不妥之处请第一时间联系我们删除,敬请谅解!
投诉侵权邮箱:520lab@2018lab.club 或联系QQ:321679717
分享到: 更多 (0)

亿软阁微营销 更专业 更方便

联系我们联系我们

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏