之前有个客户找模板兔做wordpress多重筛选功能,主要通过自定义分类法来筛选。下面给出大致的代码片段,供有一定开发基础的人看,若不懂代码,可联系模板兔开发。
处理过滤的代码:
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
$args = array(
'post_type' => 'post',
'paged' => $paged
);
$args['tax_query'] = array();
if(isset($_GET['city']) && $_GET['city'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'city','field' => 'term_id','terms' => $_GET['city']) );
}
if(isset($_GET['function']) && $_GET['function'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'function','field' => 'term_id','terms' => $_GET['function']) );
}
if(isset($_GET['industry']) && $_GET['industry'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'industry','field' => 'term_id','terms' => $_GET['industry']) );
}
if(isset($_GET['scene']) && $_GET['scene'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'scene','field' => 'term_id','terms' => $_GET['scene']) );
}
if(isset($_GET['price']) && $_GET['price'] > 0){
array_push($args['tax_query'], array('taxonomy' => 'price','field' => 'term_id','terms' => $_GET['price']) );
}
query_posts($args);
if (have_posts()) : while (have_posts()) : the_post();
endwhile;endif;?>
获取过滤链接的函数
function getFilterUrl($city,$function,$industry,$price,$scene=0){
$filter = '?filter=1';
if( $city ){
$filter .= '&city='.$city;
}else{
$filter .= '&city=0';
}
if( $function ){
$filter .= '&function='.$function;
}else{
$filter .= '&function=0';
}
if($scene){
if( $industry ){
$filter .= '&scene='.$industry;
}else{
$filter .= '&scene=0';
}
}else{
if( $industry ){
$filter .= '&industry='.$industry;
}else{
$filter .= '&industry=0';
}
}
if( $price ){
$filter .= '&price='.$price;
}else{
$filter .= '&price=0';
}
return $filter;
}
另附一个案例核心代码下载:https://pan.baidu.com/s/1slfXikH 密码: g8c9


0 个评论