我有一些帖子元条目,我想从数据库中删除。delete\\u post\\u meta()函数似乎是可行的:
delete_post_meta( int $post_id, string $meta_key, mixed $meta_value = \'\' )
问题是:我有许多具有相同meta\\u键的条目,所以我想通过meta\\u值指定要删除的行。但是,meta\\u值是序列化数据。那么我如何使用
delete_post_meta()
要按专用数据的特定值删除post\\u meta吗?
例如,序列化数据:
a:6:{s:2:"id";s:1:"1";s:4:"name";s:3:"PM1";s:5:"email";s:19:"test+1@test.com";s:3:"url";s:24:"https://example.nl/";s:4:"paid";s:1:"0";s:4:"city";s:9:"amsterdam";}
如何按序列化ID值删除?
最合适的回答,由SO网友:Yash Tiwari 整理而成
请尝试以下代码以特定值的专用数据删除post\\u meta:
$args = array(
\'post_type\' => \'post\',
\'meta_key\' => \'any-meta-key\',
\'posts_per_page\' => -1
);
$query = new WP_Query( $args );
if($query->have_posts()){
while($query->have_posts()){
$query->the_post();
$get_ID = get_post_meta($post->ID, \'any-meta-key\', true);
// Change the id value that you want to delete
if ( !empty($get_ID[\'id\']) && $get_ID[\'id\'] == \'1\' ) {
delete_post_meta($post->ID,\'any-meta-key\',$get_ID);
}
}
}
不要忘记使用元密钥更新测试元密钥。