扩展wordpress搜索查询

时间:2014-08-20 12:55:27

标签: wordpress search wp-query

我有一个带偏移和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=>$querymeta-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 );

不幸的是,这只会在第二个条件之后进行搜索。有人有想法吗?

1 个答案:

答案 0 :(得分:1)

如果你打开query.php,你会发现它确实没有考虑到这一点。并不是说它不是一个好主意,而是使用WHERE将每个单独的查询部分连接到主AND上。所以“标题包含XYZ”AND“无论元查询是”AND“,无论税务查询是什么,”等等MetaTax都有子逻辑它支持ANDOR,但无法在这些外部部分之间执行此操作。

但是,您可以通过点击其中一个过滤器(可能是get_meta_sql)来执行您要查找的内容。元查询返回一个语句,该语句放入您希望成为AND的{​​{1}},以便您可以查找并替换它:

OR