按类别和自定义文件查询帖子(ACF)

时间:2019-05-09 作者:Jakub Krzyżanowski

好吧,我尝试创建一个查询,该查询仅在满足条件的情况下才会发表文章,必须属于此类别(事件),并且具有所选类型(新闻复选框)。首先,我在ACF论坛上提问,但我得到的唯一答案是:https://support.advancedcustomfields.com/forums/topic/select-posts-by-category-custom-field/

我试过了,但不能使它正常工作。

                        <?php 

                            $args = array(
                                \'showposts\' => 6,
                                \'post_type\'     => \'post\',
                                \'meta_query\'    => array(
                                    \'relation\'      => \'AND\',
                                    array(
                                        \'key\'       => \'type_id\',
                                        \'value\'     => \'News\',
                                        \'compare\'   => \'LIKE\'
                                    ),
                                    array(
                                        \'category_name\' => \'event\',
                                        \'compare\'       =>  \'LIKE\'
                                    )
                                )
                            );  
            $the_query = new WP_Query( $args );
            ?>
我也试试这个

$args = array(
  \'post_type\' => \'post\', 
  \'tax_query\' => array(
    array(
     \'category_name\' => \'event\',
    )
  ),
  \'meta_query\' => array(
    array(
      \'key\' => \'type_id\',
      \'value\' => \'News\'
    )
  )
)

1 个回复
最合适的回答,由SO网友:nmr 整理而成

您在代码中犯了一些错误。

要按类别查询帖子,可以使用category_name [ref] 或tax_query [ref] 在查询参数中。

// category_name / cat / category__and
\'category_name\' => \'event\',
\'tax_query\' => [
    [
        \'taxonomy\' => \'category\',
        \'field\' => \'slug\',
        \'terms\' => \'event\',
    ]
],
ACF复选框作为序列化数组存储在自定义字段中。因此,您要查找的值(“新闻”)应该用双引号括起来。

\'meta_query\' => array(
    \'key\'       => \'type_id\',  // custom field id
    \'value\'     => \'"News"\',   // custom field value
    \'compare\'   => \'LIKE\'
),
完成参数:

$args = [
    \'showposts\'     => 6,
    \'post_type\'     => \'post\',
    \'category_name\' => \'event\',     // <-- category slug
    \'meta_query\'    => [
        [
            \'key\'     => \'type_id\', // <-- ACF field id
            \'value\'   => \'"News"\',  // <-- ACF field value
            \'compare\' => \'LIKE\'
        ] 
    ],
];
$the_query = new WP_Query( $args );

相关推荐

如何为class-wp-query.php追踪这些PHP通知和警告的原因?

我的WordPress调试。日志文件中充满了这些PHP通知,间隔大约15分钟,然后是几个小时…[23-Mar-2018 05:33:00 UTC] PHP Notice: Trying to get property of non-object in /home/mysite/public_html/wp-includes/class-wp-query.php on line 3736 [23-Mar-2018 05:33:00 UTC] PHP Notice: Trying to get p