Php 基于元字段值以编程方式删除Wordpress帖子
如果WordPress post的自定义字段有某个值,我想删除它。“mls”是字段的id,例如185897是值。但是,如果我运行此脚本,它将删除具有给定帖子类型的所有帖子。我还尝试了“元查询”而不是“元输入”,但结果是一样的 你知道我错过了什么吗Php 基于元字段值以编程方式删除Wordpress帖子,php,wordpress,custom-post-type,Php,Wordpress,Custom Post Type,如果WordPress post的自定义字段有某个值,我想删除它。“mls”是字段的id,例如185897是值。但是,如果我运行此脚本,它将删除具有给定帖子类型的所有帖子。我还尝试了“元查询”而不是“元输入”,但结果是一样的 你知道我错过了什么吗 $delete_post = array( 'post_type' => 'estate_property', 'post_status' => 'publish', 'meta_input' => ar
$delete_post = array(
'post_type' => 'estate_property',
'post_status' => 'publish',
'meta_input' => array(
'mls' => 185897
)
);
$posts = new WP_Query( $delete_post );
if ( $posts->have_posts() ) {
while ( $posts->have_posts() ) {
$posts->the_post();
wp_delete_post( get_the_ID());
}
}
或
这样行吗?注意,我添加了“numberposts”。WordPress一次只能检索5篇文章(默认情况下)。如果你想要所有这些,只需传递-1。谢谢你,你提供的第一个例子工作得很好!(我认为有一个额外的结束括号)
'meta\u input'
对于复合搜索应该是'meta\u query'
,或者简单地'meta\u key'
和'meta\u value'
。。。因此,当您运行WP_查询时,它将查找所有具有post类型“estate_property”和post状态“publish”的帖子。请参见下面的解决方案。
$delete_post = array(
'numberposts' => -1, // The number of posts to retrieve, otherwise 5
'post_type' => 'estate_property',
'post_status' => 'publish',
'meta_query' => array(
array(
'key' => 'mls',
'value' => '185897'
)
)
);
$delete_post = array(
'numberposts' => -1, // The number of posts to retrieve, otherwise 5
'post_type' => 'estate_property',
'post_status' => 'publish',
'meta_key' => 'mls',
'meta_value' => '185897',
);