我想要一个查询,该查询返回包含用户输入(即$ text)的CPT帖子。
插入meta_key和meta_value效果很好,但是将其放入meta_query数组中不会返回任何内容。我希望能够在多个自定义字段中进行搜索。这是我从头开始制作的主题,因此没有插件,而且functions.php文件很小,因此我认为这可能不会造成冲突。
查询声明中的meta_key和meta_value的代码(有效):
$searchquery = new WP_Query(
array( 'post_type' => 'offre',
'meta_key' => 'offre_employeur',
'meta_value' => $text,
'meta_compare'=> 'LIKE' )
);
meta_value数组的代码(不起作用):
$meta_query_args = array(
'relation' => 'OR',
array(
'key' => 'offre_employeur',
'value' => $text,
'compare' => 'LIKE'
), array(
'key' => 'offre_titre',
'value' => $text,
'compare' => 'LIKE'
)
);
$searchquery = new WP_Query(array('post_type' => 'offre'));
$searchquery->set('meta_query', $meta_query_args);
我尝试的第二种方法的代码,但仍然没有结果(不起作用)
$args = array(
'post_type' => 'offre',
'posts_per_page' => -1,
's' => $text,
'meta_query' => array(
array(
'key' => 'offre_employeur',
'value' => $text,
'compare' => 'LIKE'
),
array(
'key' => 'offre_titre',
'value' => $text,
'compare' => 'LIKE'
)
)
);
$searchquery = new WP_Query($args);
提前感谢您的时间。
答案 0 :(得分:1)
根据此处的文档:https://codex.wordpress.org/Class_Reference/WP_Query
我断言您想向下滚动到标题为“ Multiple Custom Field Handling:”的部分,该部分包含以下示例,与您的情况最匹配:
$args = array(
'post_type' => 'product',
'meta_query' => array(
'relation' => 'OR',
array(
'key' => 'color',
'value' => 'blue',
'compare' => 'NOT LIKE',
),
array(
'key' => 'price',
'value' => array( 20, 100 ),
'type' => 'numeric',
'compare' => 'BETWEEN',
),
),
);
$query = new WP_Query( $args );
根据您在问题中提供的内容,我将进行以下修改以获得您想要的结果:
$args = array(
'post_type' => 'offre',
'posts_per_page' => -1,
// remove the "search" query, which restricts the results to those with titles / content that match the $text content
// 's' => $text,
'meta_query' => array(
// add the "relation" argument, default is AND, you need OR
'relation' => 'OR',
array(
'key' => 'offre_employeur',
'value' => $text,
'compare' => 'LIKE'
),
array(
'key' => 'offre_titre',
'value' => $text,
'compare' => 'LIKE'
)
)
);
$searchquery = new WP_Query($args);