如何使用自定义域搜索WordPress帖子类型?

时间:2015-03-26 作者:Saren

我在Publication中有一个帖子类型。我也有一些自定义字段在该职位类型,如出版年份,作者。。。

我想有一个带有3个下拉字段的搜索框,这些字段都是字段、出版年份和作者。当用户选择“全部”字段时,它将搜索此帖子类型中的所有帖子,但当用户选择自定义字段(如发布年份或作者)时,它将只搜索与该发布年份或作者匹配的帖子。

我花了3天的时间来搜索这个,但我没有运气,所以请帮助建议我。

谢谢

2 个回复
最合适的回答,由SO网友:czerspalace 整理而成

使用pre\\u get\\u posts可能有效。您能否尝试以下类似的方法,并告诉我是否满足您的需要:

function search_filter($query) {
  if ( !is_admin() && $query->is_main_query() ) {
    if ($query->is_search) {
      $query->set(\'post_type\', array( \'post\', \'movie\' ) );
      //Should do some sanitation on $GET too
      if(isset($_GET[\'author\'])){    //Change to your field dropdown name
        $query->set(\'meta_key\', \'author\'); //change to custom field name
        $query->set(\'meta_value\', $_GET[\'author\']);   
      }
      else if(isset($_GET[\'pubyear\'])){    
        $query->set(\'meta_key\', \'pubyear\');
        $query->set(\'meta_value\', $_GET[\'pubyear\']);   
      }
    }
  }
}

add_action(\'pre_get_posts\',\'search_filter\');
更新:也可以更好地使用$query->set(\'meta_query\'), array(..)... 根据您的需要

SO网友:Saren

谢谢你的帮助。我想要的正是下面的图像。我需要一个文本框,用户可以键入关键字,他们也可以通过选择下拉列表过滤。在下拉列表中,它有如下自定义字段Publication Year, Author...

enter image description here

结束

相关推荐