1. 新しいカスタムフィールドをバッチで追加する方法
insert into wp_postmeta (post_id, meta_key, meta_value)
select ID, '新自定义字段', '自定义字段值' from wp_posts where post_type = 'post';
2. カスタムフィールド名を一括で変更する
UPDATE 'wp_postmeta' SET 'meta_key'='新的自定义域名称' WHERE 'meta_key' = '旧的自定义域名称';
3. 重複したカスタムフィールドを削除する
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 が設定するプレフィックスです。プレフィックスの場合bb _ではなくwp _ ではない場合、wp_ postmeta をbb _postmeta に変更する必要があります
2. PHPコードを使用して重複フィールドを削除します
phpMyAdmin を通じてデータベースを操作する方法がない場合は、次の方法を使用できます。
1. Web サイトのルート ディレクトリに、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つのフィールドが削除されていますので、ご自身で変更してください(複数のフィールドは半角カンマで区切ります)。
2. ブラウザから http://ドメイン名/remove-duplicate-custom-fields.php にアクセスし、しばらく待つと、冗長な重複フィールドが削除されます。