我在Publication中有一个帖子类型。我也有一些自定义字段在该职位类型,如出版年份,作者。。。
我想有一个带有3个下拉字段的搜索框,这些字段都是字段、出版年份和作者。当用户选择“全部”字段时,它将搜索此帖子类型中的所有帖子,但当用户选择自定义字段(如发布年份或作者)时,它将只搜索与该发布年份或作者匹配的帖子。
我花了3天的时间来搜索这个,但我没有运气,所以请帮助建议我。
谢谢
我在Publication中有一个帖子类型。我也有一些自定义字段在该职位类型,如出版年份,作者。。。
我想有一个带有3个下拉字段的搜索框,这些字段都是字段、出版年份和作者。当用户选择“全部”字段时,它将搜索此帖子类型中的所有帖子,但当用户选择自定义字段(如发布年份或作者)时,它将只搜索与该发布年份或作者匹配的帖子。
我花了3天的时间来搜索这个,但我没有运气,所以请帮助建议我。
谢谢
使用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(..)...
根据您的需要谢谢你的帮助。我想要的正是下面的图像。我需要一个文本框,用户可以键入关键字,他们也可以通过选择下拉列表过滤。在下拉列表中,它有如下自定义字段Publication Year, Author...