如何显示未选中复选框的帖子?
我不知道当复选框未选中(或者可能根本没有设置元)时,元值设置为什么,但您可以使用meta_query
用于搜索未设置meta(尚未添加到帖子)或值为空的帖子的参数,例如,在您的情况下,“;“空”;可能意味着元值是0
(零)或无(即空字符串)。
因此,在下面的示例中,我使用\'value\' => [ 0, \'\' ]
然后自动设置compare
到IN
因为我们正在传递一个值数组。
$args = array(
// your other args here, but without the meta_key and meta_value
\'meta_query\' => array(
\'relation\' => \'OR\',
// Search for posts where the meta does not exist.
array(
\'key\' => \'isfeatured\',
\'compare\' => \'NOT EXISTS\',
),
// Search for posts where the meta value is empty.
array(
\'key\' => \'isfeatured\',
\'value\' => [ 0, \'\' ],
),
),
);
如果你想使用
meta_query
要检索选中复选框(元值为1)的帖子,请执行以下操作:
$args = array(
// your other args here, but without the meta_key and meta_value
\'meta_query\' => array(
// Search for posts where the meta value is exactly 1 (one).
array(
\'key\' => \'isfeatured\',
\'value\' => 1,
),
),
);
检查
this 有关元查询参数的更多详细信息,请参阅
WP_Query
.
其他注意事项您的代码中有一个错误-您需要切换return $data;
和wp_reset_postdata();
, i、 e.电话wp_reset_postdata()
第一
Shortcode应该总是返回一些东西,就像过滤器挂钩一样,如the_content
, 所以我要补充return \'\';
在快捷码函数的末尾。:)
众所周知,当网站变大时(许多帖子、用户、插件、选项、访问者等),像上面这样的元查询会导致性能问题,所以正如我在评论中所说的,你应该考虑使用分类法/术语来标记你想成为的帖子;特色产品;。
毕竟,分类法是用来将事物分组在一起的,分类法术语不必是诸如Featured
或Foo Bar
相反,他们可以0
或1
表示布尔值。