我正在將 wordpress 自定義欄位轉換為 wp 資料庫中的一個陣列。我能夠做到,但我有重復的條目。我只需要一個。請指導我。謝謝!
在運行我的代碼之前:

運行我的代碼后:

我真正想要的:

我的代碼:
add_action( 'init', function() {
if ( 'migrate' !== filter_input( INPUT_GET, 'action' ) ) {
return;
}
$query = new WP_Query( [
'posts_per_page' => -1,
'post_type' => 'post',
'post_status' => 'any',
] );
if ( ! $query->have_posts() ) {
return;
}
while ( $query->have_posts() ) {
$query->the_post();
$field_id_1 = 'gallery';
$field_value_1 = get_post_meta( get_the_ID(), $field_id_1, false );
update_post_meta( get_the_ID(), $field_id_1, $field_value_1);
}
} );
uj5u.com熱心網友回復:
add_action( 'init', function() {
if ( 'migrate' !== filter_input( INPUT_GET, 'action' ) ) {
return;
}
$query = new WP_Query( [
'posts_per_page' => -1,
'post_type' => 'post',
'post_status' => 'any',
] );
if ( ! $query->have_posts() ) {
return;
}
while ( $query->have_posts() ) {
$query->the_post();
$field_id_1 = 'gallery';
$field_value_1 = get_post_meta( get_the_ID(), $field_id_1, false );
delete_post_meta( get_the_ID(), $field_id_1 );
add_post_meta( get_the_ID(), $field_id_1, $field_value_1);
}
} );
@Mulli 我讓它以這種方式作業。我決定先洗掉 post_meta,然后再添加 add_post_meta,而不是更新 post_meta。謝謝您的幫助!
uj5u.com熱心網友回復:
請參閱相關部分:
$first=true;
$field_id_1 = 'gallery';
while ( $query->have_posts() ) {
$query->the_post();
$field_value_1 = get_post_meta( get_the_ID(), $field_id_1, false );
if ($first){
update_post_meta( get_the_ID(), $field_id_1, $field_value_1);
$first = false;
else delete_post_meta( get_the_ID(), $field_id_1, $field_value_1);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/482777.html
上一篇:存盤檔案哈希和修改時間?
下一篇:如何獲取值陣列的資料
