请注意compare
值为EXISTS
而不是EXIST
. post_id
也是无效/标准parameter 对于元查询子句:)
但是\'compare\' => \'EXIST\'
相当于\'compare\' => \'=\'
, i、 e.默认比较值为=
, 因此,您的元查询工作正常,结果中仅包含包含元的帖子(无论值是否为空)。
实际上,如果您只想检查一篇文章是否包含特定的元,那么不需要在那里进行元查询。
使用get_post_meta()
获取元值,然后执行if-else检查,如while
循环如下:
$args = array(
\'post_type\' => \'post\',
);
// Get all matching posts, with and without the meta wc_pay_per_post_product_ids.
$query = new WP_Query( $args );
while ( $query->have_posts() ) : $query->the_post();
// Get the meta value.
$meta = get_post_meta( get_the_ID(), \'wc_pay_per_post_product_ids\', true );
// Then do an if-else:
if ( $meta ) {
echo \'has meta<br>\';
} else {
echo \'has no meta<br>\';
}
endwhile;
您还可以使用
metadata_exists()
如果您不需要访问/了解元值:
if ( metadata_exists( \'post\', get_the_ID(), \'wc_pay_per_post_product_ids\' ) ) {
echo \'has meta<br>\';
} else {
echo \'has no meta<br>\';
}