Wordpress:自定义帖子类型的元查询不返回帖子

时间:2018-07-23 19:41:06

标签: wordpress

我有一个自定义的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')

1 个答案:

答案 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'
);

太烦人了。如果有人知道为什么,请发表评论。

谢谢