我已经做了两个下拉列表,这是一个自定义字段。
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
)
)
)
获取此阵列但数据不符合电子商务。
添加字段图片:
SO网友:rozklad
如果您在ACF定义的自定义字段中有基于数组的值(正如我从屏幕截图中看到的),那么您将希望使用LIKE as compare而不是in编写元查询。
我假设您的“提供者”帖子类型如下:
下面是使用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/ 有关自定义字段元查询的详细信息。