我有一个带偏移和post_per_page的工作搜索查询(用户可以浏览页面)
$args = array(
'post_type' => 'type',
's'=>$the_str,
'posts_per_page' => $the_count,
'offset' => ($the_count*$the_c_page )-$the_count
);
$the_query = new WP_Query( $args );
效果很好。
但现在我需要在搜索功能中添加一个元字段。它应该包含s=>$query
或meta-field=>$query
的所有帖子
像这样:
$args = array(
'post_type' => 'type',
'posts_per_page' => $the_count,
'offset' => ($the_count*$the_c_page )-$the_count,
'meta_query' => array(
'relation' => 'OR',
's'=>$the_str,
array(
'key' => 'key',
'value' => $the_str
)
);
$the_query = new WP_Query( $args );
不幸的是,这只会在第二个条件之后进行搜索。有人有想法吗?
答案 0 :(得分:1)
如果你打开query.php
,你会发现它确实没有考虑到这一点。并不是说它不是一个好主意,而是使用WHERE
将每个单独的查询部分连接到主AND
上。所以“标题包含XYZ”AND
“无论元查询是”AND
“,无论税务查询是什么,”等等Meta
和Tax
都有子逻辑它支持AND
和OR
,但无法在这些外部部分之间执行此操作。
但是,您可以通过点击其中一个过滤器(可能是get_meta_sql
)来执行您要查找的内容。元查询返回一个语句,该语句放入您希望成为AND
的{{1}},以便您可以查找并替换它:
OR