通过多个自定义字段获取帖子不起作用

时间:2018-04-27 作者:WebRence

我已经做了两个下拉列表,这是一个自定义字段。

Custom Field 1 :- industry
自定义字段1的值:-金融服务、电子商务、保险等。

Custom Field 2 :- primary_functionality
自定义字段2的值:-platform_decision_engine,user_authentication,data_provider_verification

我的帖子类型名称是:-提供者。

现在,我想获取具有多个自定义字段的帖子。

所以,我尝试了这个查询。但它不起作用。如何在值字段中传递数组,因为它会给我意外的结果。

即使我尝试了单个自定义字段,但它也不起作用。

$search_args = array(
        \'posts_per_page\' => -1,
        \'post_type\'     => \'providers\',
        \'post_status\'   => \'publish\',
        \'orderby\'       => \'title\',
        \'order\'         => \'ASC\',
        \'meta_query\'    => array(
            \'relation\'      => \'OR\',
            array(
                \'key\'       => \'industry\',
                \'value\'     => $industry,
                \'compare\'   => \'IN\'
            ),
            array(
                \'key\'       => \'primary_functionality\',
                \'value\'     => array(\'platform_decision_engine\'),
                \'compare\'   => \'IN\'
            )
        ),
        \'suppress_filters\' => true
    );  
}
    $the_query_search = new WP_Query( $search_args );
此查询未获得预期结果。

编辑:

[query] => Array
        (
            [posts_per_page] => -1
            [post_type] => providers
            [post_status] => publish
            [meta_query] => Array
                (
                    [0] => Array
                        (
                            [key] => industry
                            [value] => Array
                                (
                                    [0] => ecommerce
                                )

                            [compare] => IN
                        )
                )    
        )
获取此阵列但数据不符合电子商务。

添加字段图片:enter image description here

1 个回复
SO网友:rozklad

如果您在ACF定义的自定义字段中有基于数组的值(正如我从屏幕截图中看到的),那么您将希望使用LIKE as compare而不是in编写元查询。

我假设您的“提供者”帖子类型如下:enter image description here

下面是使用LIKE compare编写的示例:

<?php

    $search_args = array(
        \'posts_per_page\' => -1,
        \'post_type\'     => \'providers\',
        \'post_status\'   => \'publish\',
        \'orderby\'       => \'title\',
        \'order\'         => \'ASC\',
        \'meta_query\'    => array(
            \'relation\'      => \'OR\',
            array(
                \'key\'       => \'industry\',
                \'value\'     => \'financial_services\',
                \'compare\'   => \'LIKE\'
            ),
            array(
                \'key\'       => \'primary_functionality\',
                \'value\'     => \'platform_decision_engine\',
                \'compare\'   => \'LIKE\'
            )
        ),
        \'suppress_filters\' => true
    );  

    $the_query_search = new WP_Query( $search_args );

    while($the_query_search->have_posts()) : $the_query_search->the_post();

        echo get_the_title() . \'<br>\';

    endwhile;

?>
参见https://www.advancedcustomfields.com/resources/query-posts-custom-fields/ 有关自定义字段元查询的详细信息。

结束

相关推荐

使用新的WP-Query()从循环中过滤后期格式;

嗨,我目前正在为我的博客构建一个主题。下面的代码指向最新的帖子(特色帖子)。因为这将有一个不同的风格比所有其他职位。然而我想过滤掉帖子格式:链接使用我在循环中定义的WP查询,因为它给我带来了更多的灵活性。我该怎么做呢? <?php $featured = new WP_Query(); $featured->query(\'showposts=1\'); ?> <?php while ($featured->have_post