解决:请参阅下面的答案。
我有一个名为BOOKS的自定义帖子类型。它具有几个自定义字段,名称分别为:TITLE
,AUTHOR
,GENRE
和RATING
。如何在下面修复自己的meta_query
代码,以便仅在自定义字段中包含搜索词的书:title
,author
,genre
与我的搜索表单中指定的 rating
完全一样,才会显示在结果中?
我已经做了一个定制的搜索表格;一个文本区域,它将搜索title
,author
和genre
;和一个下拉列表,将搜索rating
。我在下面创建的meta_query
仅搜索title
,author
和genre
。但是我现在很困惑如何为rating
添加代码。
这是我通过meta_query关系在视觉上想象的方式:
(标题或作者或类型)和评级
$args = array(
'relation' => 'OR',
array(
'key' => 'title',
'value' => $searchvalue,
'compare' => 'LIKE'
);
array(
'key' => 'author',
'value' => $searchvalue,
'compare' => 'LIKE'
);
array(
'key' => 'genre',
'value' => $searchvalue,
'compare' => 'LIKE'
);
),
array(
'relation' => 'AND',
array(
'key' => 'rating',
'value' => $ratingvalue,
'compare' => '=',
'type' => 'NUMERIC'
));
非常感谢您的帮助和建议。
请您参考如下方法:
我在一些帮助下找到了解决方案。
下面的代码运行完美。
$args => array(
'relation' => 'AND',
array(
'relation' => 'OR',
array(
'key' => 'title',
'value' => $searchvalue,
'compare' => 'LIKE'
),
array(
'key' => 'author',
'value' => $searchvalue,
'compare' => 'LIKE'
),
array(
'key' => 'genre',
'value' => $searchvalue,
'compare' => 'LIKE'
)
),
array(
'key' => 'rating',
'value' => $ratingvalue,
'compare' => '=',
'type' => 'NUMERIC'
)
)
);