我正在为一个青少年足球俱乐部的客户开发一个网站,根据孩子的能力和年龄,有许多不同的球队。我添加了一个名为Match Reports的自定义帖子类型,这样每个团队的经理都可以登录并撰写他们团队参与的最新比赛的帖子。
我还有一个新闻部分,使用WP的标准帖子部分。我已经写了一个短代码,可以在主页上显示新闻。我想做的是启用一个系统,通过选择一个选项,使用高级自定义字段插件(这是一个带有真/假值的两个选项单选按钮表单)将其中一个匹配报告添加到主页上?是/否。
在我的新闻快捷码中,我添加了Match Reports自定义帖子类型,效果很好,但我不知道如何仅显示选中“show on Homepage-Yes”单选按钮的报告。以下是我的查询参数:
$queryArgs = array(
"post_type" => array( "post", "match-report" ),
"meta_key" => "show_in_news",
"meta_value" => "true"
);
问题是,由于标准帖子中没有自定义字段,因此只显示匹配报告,如果我删除自定义字段查询,它将显示所有匹配报告以及帖子。我需要它只显示匹配报告
show_in_news
(我的自定义字段带有单选按钮,使用高级自定义字段创建,值为
true
, 以及所有的帖子。
有人能帮我吗?如果是的话,非常感谢:)
最合适的回答,由SO网友:cybmeta 整理而成
当前您的元查询是独占的,您需要使其具有包容性。例如,您可以保存always 元字段show_in_news
对于match report custom post type,即使值为false
. 然后,如果自定义,您可以包含帖子show_in_news
不存在(标准帖子),或者如果存在并且是"true"
对于自定义帖子类型:
$queryArgs = array(
"post_type" => array( "post", "match-report" ),
"meta_query" => array(
"relation" => "OR",
array(
"key" => "show_in_news",
"compare" => "NOT EXISTS",
),
array(
"key" => "show_in_news",
"value" => "true",
),
),
);
这应该可以完成工作。