WordPress批量增加、修改、去除重复自定义字段

一、如何批量增加新的自定义字段

insert into wp_postmeta (post_id, meta_key, meta_value)
select ID, '新自定义字段', '自定义字段值' from wp_posts where post_type = 'post';

二、批量修改自定义字段名称

UPDATE 'wp_postmeta' SET 'meta_key'='新的自定义域名称' WHERE 'meta_key' = '旧的自定义域名称';

三、去除重复的自定义字段

1、通过直接修改数据库命令

delete from wp_postmeta
where meta_id in (
       select *
       from (
               select meta_id
               from wp_postmeta a
               where a.meta_key = 'views'
               and meta_id not in (
                       select min(meta_id)
                       from wp_postmeta b
                       where b.post_id = a.post_id
                       and b.meta_key = 'views'
               )
       ) as x
);

注意:

views代表你要修改的字段,wp_posta 是数据库中的某一张表,自定义字段就是存在这个表中,请注意前面的wp_,这是WordPress在创建数据库时设置的前缀,如果你的前缀不是wp_而是bb_开头,那么wp_postmeta 则需要改成bb_postmeta 

2、通过php代码来去除重复的字段

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

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

<?php
define('WP_USE_THEMES', false);
require('wp-blog-header.php');
 
    define( 'WP_DEBUG_DISPLAY', true ); 
    ini_set( 'display_errors', true );
    $allposts = get_posts('numberposts=-1&post_type=post&post_status=any');
    $keys = array('views','test_meta');//要检索的自定义字段
    foreach ( $keys as $key ) {
        foreach( $allposts as $postinfo) {
            // 获取(上面所填写的)自定义字段的值
            $postmeta = get_post_meta($postinfo->ID, $key);
 
            if (!empty($postmeta) ) {
                // 删除这篇文章的(上面所填写的)自定义字段
                delete_post_meta($postinfo->ID, $key);
 
                // 插入一个且只有一个(上面所填写的)自定义字段
                update_post_meta($postinfo->ID, $key, $postmeta[0]);
            }
        }
    }
?>

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

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

猜你喜欢

转载自blog.csdn.net/t1174148618/article/details/107692720