学做网站培训课程介绍

当前位置:

网站多条件筛选搜索功能制作方法

我们经常看到很多网站里有多条件筛选搜索功能,可以同时选择多个条件来筛选符合全部条件的信息。例如电影网站制作中供用户筛选影片,号码网站筛选符合多种条件的号码。(也可以使用WordPress中文多条件多重搜索筛选插件来轻松实现网站多条件筛选搜索功能。)

如下图:

网站多条件筛选搜索功能

自己做网站时,怎么制作这样的多条件筛选功能呢?下面就是WordPress程序为例介绍一下网站多条件筛选搜索功能制作方法

WordPress要实现文章多重筛选的核心函数就是wp_query( );以下是使用wp_query( )实际实用方法。

条件选择


// 分类
if(isset($_GET['cat'])&& $_GET['cat']!='') {
$cat_name=$_GET['cat'];
}
// 标签
if(isset($_GET['tag']) ){
$tag=$_GET['tag'];
}

$metaArray=array();

// 自定义规律字段:guilv
if(isset($_GET['guilv'])&& $_GET['guilv']!=''){
$array_temp = array('key' => 'guilv', 'value'=>$_GET['guilv'], 'compare'=>'=');
array_push($metaArray,$array_temp);
}

// 自定义价格区间字段:jiagequjian
if(isset($_GET['jiagequjian'])&&$_GET['jiagequjian']!=''){
$array_temp = array('key' => 'jiagequjian', 'value'=>$_GET['jiagequjian'], 'compare'=>'=');
array_push($metaArray,$array_temp);
}

排序显示


//正反顺序
if($_GET['orderby']=='时间升序' || $_GET['orderby'] =='价格升序'){
$order='ASC';//按升序
}
else
{
$order = 'DESC';//按降序
}

//默认按时间排序
$orderby='date';

//如果用户设置了按文章特定字段价排序

if($_GET['orderby'] =='价格升序' || $_GET['orderby'] =='价格降序'){ //价格升序

//获取上述参数,组成查询条件 按价格排序
$args = array(
'meta_query' => $metaArray,
'cat' =>$cat_name,
'tag'= $tag_name,
'order' => $order,
'meta_key' => 'jiage',//按照价格数值排序
'orderby' => 'meta_value_num',
);

}else{

//常规排序方法(按发布时间)
$args = array(
'meta_query' => $metaArray,
'cat' =>$cat_name,
'tag'= $tag_name,
'showposts' =>200,
'order' => $order,
'orderby' => $orderby,
);
}

//查询文章
$query = new WP_Query( $args );

循环显示


<?php while ($query->have_posts()) : $query->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>

整体多条件搜索功能代码如下:


<?php
// 分类
if(isset($_GET['cat'])&& $_GET['cat']!='') {
$cat_name=$_GET['cat'];
}
// 标签
if(isset($_GET['tag']) ){
$tag=$_GET['tag'];
}

$metaArray=array();

// 自定义规律字段:guilv
if(isset($_GET['guilv'])&& $_GET['guilv']!=''){
$array_temp = array('key' => 'guilv', 'value'=>$_GET['guilv'], 'compare'=>'=');
array_push($metaArray,$array_temp);
}

// 自定义价格区间字段:jiagequjian
if(isset($_GET['jiagequjian'])&&$_GET['jiagequjian']!=''){
$array_temp = array('key' => 'jiagequjian', 'value'=>$_GET['jiagequjian'], 'compare'=>'=');
array_push($metaArray,$array_temp);
}

//正反顺序
if($_GET['orderby']=='时间升序' || $_GET['orderby'] =='价格升序'){
$order='ASC';//按升序
}
else
{
$order = 'DESC';//按降序
}

//默认按时间排序
$orderby='date';

//如果用户设置了按文章特定字段价排序

if($_GET['orderby'] =='价格升序' || $_GET['orderby'] =='价格降序'){ //价格升序

//获取上述参数,组成查询条件 按价格排序
$args = array(
'meta_query' => $metaArray,
'cat' =>$cat_name,
'tag'= $tag_name,
'order' => $order,
'meta_key' => 'jiage',//按照价格数值排序
'orderby' => 'meta_value_num',
);

}else{

//常规排序方法(按发布时间)
$args = array(
'meta_query' => $metaArray,
'cat' =>$cat_name,
'tag'= $tag_name,
'showposts' =>200,
'order' => $order,
'orderby' => $orderby,
);
}

//查询文章
$query = new WP_Query( $args );
?>

<?php while ($query->have_posts()) : $query->the_post(); ?>
<li><a href="<?php the_permalink() ?>"><?php the_title(); ?></a></li>
<?php endwhile; ?>

如果多重筛选需要分页,可以参考WordPress网站实现query_posts查询结果分页

这种筛选是使用compare 进行比较,它可以取多种值进行比较,如:

  • 'compare'=>'='  二值相等
  • 'compare'=>'>'  取的值大于设定的值
  • 'compare'=>'<'  取的值小于设定的值
  • 'compare'=>'LIKE'  取的值包含设定的值

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

相关教程

  • 在前面的建站教程中,我们讲了如何制作Wordpress搜索功能,可以实现单一内容的搜索。但在实际网站建设过程中,往往需要多重筛选、多条件搜索功能。如
  • 有些网站需要做多条件选择功能,就是可以选择多个条件,然后显示符合所有条件的内容。如下图,就是一个多条件选择功能。我们使用Wordpress建网
  • 我们经常看到很多网站里有多条件筛选搜索功能,可以同时选择多个条件来筛选符合全部条件的信息。例如电影网站制作中供用户筛选影片,号码网站筛选符合
  • 自己做网站过程中,网页的搜索功能不可或缺,对于WP网站来说,做一个搜索功能不是难事,我们的课程也讲到了wordpress搜索功能(search.php)模板制作
  • 如果自己做的网站内容众多,当用户想寻找一个自己需要的内容时,一个一个查找是一件很累的事情,如果在自己的网站上做一个搜索框,提供网站搜索功能,
  • 纯代码Wordpress前台投稿功能制作方法,很多建网站学员学习了Wordpress教程后,使用Wordpress 程序建了网站。但如果每天都是自己更新文章,感觉会有点
  • 我们在有些网站上看到会在网站的某个位置显示一个动态变化的时钟,它是一秒秒的变化。对于这种效果,我们自己做网站时也可以制作出来,只需要通过JS就