您可以使用meta_query parameter (和Query all posts where a meta key does not exist) 将查询限制为仅具有或不具有特定元值的帖子。
$query = new WP_Query(array(
\'post_type\' => \'post\',
\'post_status\' => \'publish\',
\'posts_per_page\' => -1,
\'meta_query\' => array(
array(
\'key\' => \'your_meta_key\',
\'compare\' => \'NOT EXISTS\',
),
),
\'no_found_rows\' => true,
\'fields\' => \'ids\',
));
if ( $query->posts ) {
array_walk(
$query->posts,
function($post_id, $index) {
update_post_meta( $post_id, \'your_meta_key\', \'meta_value\' );
}
);
}
此外,根据您的主机,您可能需要对
posts_per_page
并多次运行脚本(可能是cronjob?)如果不使用-1作为数千篇帖子的查询,可能会导致网站崩溃,或者执行时间可能会耗尽