我有一个自定义的meta复选框,并在“ Post”和“ Recipes”上都选择了下拉菜单。 “食谱”是自定义帖子类型。
我正在尝试查询所选选项等于作者ID且选中复选框的帖子。该查询发生在单作者页面上,因此我正在查询所选作者ID = get_the_id()的位置,并选中启用该复选框的复选框。
由于某种原因,我检查复选框是否已选中的部分(我将meta设置为1,否则设置为0)正在干扰“食谱”帖子类型:
array(
'key' => 'use_contrib_author_new',
'value' => '1'
),
在查询“帖子”时,以下内容非常有用
$args = array(
'post_type' => 'post',
'posts_per_page' => '6',
'orderby' => "date",
'order' => 'DESC',
'paged' => $paged,
'meta_query' => array(
'relation'=> 'AND',
array(
'key' => 'contrib_author_choice',
'value' => get_the_ID(),
),
array(
'key' => 'use_contrib_author_new',
'value' => '1'
),
),
'meta_key' => 'contrib_author_choice'
);
在“作者”页面上,我正在使用其ID在下拉列表中获取所选作者。它查询选中了复选框且ID匹配的所有帖子。
我的食谱发布类型具有与以下内容完全相同的元信息:
add_meta_box( 'choose_author', __( 'Choose Contributing Author', '' ), 'callback_contrib_author_post_type', array('post', 'recipes'), 'normal', 'high' );
如果我将帖子类型更改为“食谱”,则不会查询任何内容。
有趣的是,如果我将关系更改为OR,它将拉出配方,但是,由于未考虑选中的复选框,因此并非所有配方都属于作者。
所以基本上,我在两种帖子类型上都有相同的元数据,我想用它来查询'post_type'=> array('post','recipes')
答案 0 :(得分:0)
好的,我解决了这个问题。非常非常烦人的问题。
因此,当保存我的自定义元复选框时,它将转换为“ 1”表示启用,“ 0”表示禁用。
对于“发布”类型,情况就是这样。但是由于某种原因,当我在代码中显示的自定义帖子类型“ Recipes”上重新使用此元数据时,该值要么为“ on”,要么为“ 0”。
所以我的新$ arg是
$args = array(
'post_type' => array('post' , 'recipes'),
'posts_per_page' => '6',
'orderby' => "date",
'order' => 'DESC',
'paged' => $paged,
'meta_query' => array(
'relation'=> 'AND',
array(
'key' => 'contrib_author_choice',
'value' => get_the_ID(),
),
array(
'relation' => "OR",
array(
'key' => 'use_contrib_author_new',
'value' => '1'
),
array(
'key' => 'use_contrib_author_new',
'value' => 'on'
)
),
),
//'meta_key' => 'contrib_author_choice'
);
太烦人了。如果有人知道为什么,请发表评论。
谢谢