代码之家  ›  专栏  ›  技术社区  ›  good_afternoon

自定义日志类型的元查询不返回日志

  •  -1
  • good_afternoon  · 技术社区  · 6 年前

    我有一个自定义的meta复选框,并在“post”和“recipes”上选择下拉框。“食谱”是一种自定义的日志类型。

    我试图查询所选选项等于作者ID且复选框选中的文章。此查询发生在单作者页上,因此我正在查询选中的作者id=get_the_id()和启用此功能的复选框。

    出于某种原因,我检查复选框是否选中的部分(我将meta设置为1,否则为0)干扰了“配方”post类型:

     array(
                    'key' => 'use_contrib_author_new',
                    'value' => '1'
    
                ),
    

    在查询“post”时,以下功能非常有效

    $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' );
    

    如果我将post类型更改为“recipes”,则不会查询任何内容。

    有趣的是,如果我更改了与或的关系,它将拉菜单,但是,不是所有的都属于作者,因为选中的复选框没有说明。

    因此,基本上,我在两个post类型上有相同的meta,我想用它来查询'post_type'=>array('post'、'recipes')

    1 回复  |  直到 6 年前
        1
  •  0
  •   good_afternoon    6 年前

    好吧,我解决了这个问题。非常恼人的问题。

    因此,当保存自定义元复选框时,它将转换为“1”表示打开,而“0”表示关闭。

    对于“post”类型是这样的。但是出于某种原因,当我在我的代码中显示的自定义post类型“配方”上重用这个meta时,值要么是“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'
    );
    

    真让人讨厌。如果有人知道原因,请评论。

    谢谢