利用WordPress的 pre get posts 实现在归档页的多重筛选

voice 站点 2018年12月19日11:55:30 评论浏览:288
/*
	利用WordPress的 pre get posts 实现在归档页的多重筛选
	需求举例:在分类归档页面添加标签筛选
	支持自定义taxonomy
	在分类页的网址基础上,添加GET参数:?tag_id= 或者 ?language_id=
	叠加筛选 ?tag_id=xxx&language_id=xxx

*/
function my_pre_get_posts($query) {
	// 排除后台管理界面
	if (is_admin()) {
		return $query;
	}

	if (is_archive() or is_search()) {

        // taxonomy Begin 多重筛选开始 @2018.12.12	
		$tax_query = array(
	    	'relation' => 'AND',
		);
        //1、标签 		
		if(isset($_GET['tag_id'])){
			$array_temp = array(
				'taxonomy' => 'post_tag',
				'field'    => 'term_id',
				'terms'    => $_GET['tag_id'],
			);
			array_push($tax_query, $array_temp);
		}
        //2、自定义taxonomy 语言 		
		if(isset($_GET['language_id'])){
			$array_temp = array(
				'taxonomy' => 'language',
				'field'    => 'term_id',
				'terms'    => $_GET['language_id'],
			);
			array_push($tax_query, $array_temp);
		}

		$query->set('tax_query',$tax_query);
        //taxonomy End		

	}

	return $query;

}
add_action('pre_get_posts', 'my_pre_get_posts');

原文链接:https://wndwp.com/article/210

  • 如有帮到您,可适当赞助
  • 支付宝
  • weinxin
  • 不关心金额,只在乎鼓励
  • 微信
  • weinxin
voice 站点

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: