WordPress按自定义字段、分类、标签等多重筛选并排序

开门见山,WordPress要实现文章多重筛选的核心函数就是wp_query( ),有php基础的,直接看官方文档应该就能解决标题所提到的WordPress多重筛选功能了。效果图实例:

 

WordPress按自定义字段、分类、标签等多重筛选并排序
下面我做一些简单的介绍:

假设文章有自定义字段:area 存放的是地区信息,比如重庆,比如北京等。另一个字段为type,存放类型。

  1. // 分类
  2. if(isset($_GET['cat'])) {
  3. $cat_name=$_GET['cat'];
  4. }
  5. // 标签
  6. if(isset($_GET['tag']) ){
  7. $tag=$_GET['tag'];
  8. }
  9. // 自定义字段:area
  10. if(isset($_GET['area']) ){
  11. $array_temp = array('key' => 'area', 'value'=>$_GET['area'], 'compare'=>'=');
  12. array_push($metaArray,$array_temp);
  13. }
  14. // 自定义字段:type
  15. if(isset($_GET['type']) ){
  16. $array_temp = array('key' => 'type', 'value'=>$_GET['type'], 'compare'=>'=');
  17. array_push($metaArray,$array_temp);
  18. }
  19. //正反顺序
  20. if(isset($_GET['order'])){
  21. $order=$_GET['order'];
  22. }
  23. else $order = 'DESC';
  24. //默认按时间排序
  25. $orderby='date';
  26. //如果用户设置了按文章特定字段价排序
  27. if(isset($_GET['orderby'])){
  28. if($_GET['orderby'] == 'views'){
  29. $array_temp = array('key' => 'views');
  30. array_push($metaArray,$array_temp);
  31. $orderby='meta_value_num';
  32. }
  33. else $orderby = $_GET['orderby']; //否则按wp自带排序字段
  34. }
  35. //获取上述参数,组成查询条件
  36. $args = array(
  37. 'meta_query' => $metaArray,
  38. 'category_name' = >$cat_name,
  39. 'tag'= $tag_name,
  40. 'order' => $order,//DESC,
  41. 'orderby' => $orderby,
  42. );
  43. //查询文章
  44. $query = new WP_Query( $args );

输出:

  1. <?php while ($query->have_posts()) : $query->the_post(); ?>
  2. <h1 class="post-name"><a href="<?php the_permalink(); ?>" ><?php the_title(); ?></a></h1>
  3. <?php endwhile; ?>

我这里只设置输出了标题。大意就是如此。通过上面的代码,就可以实现,标签,分类,和area 和type四个条件的多重筛选。

  1. $_GET['cat'])

这是指从网址中获取的值,比如

  1. ?area=重庆&cat=food&tag=good&type=xxx&orderby=modified

则获取的是,重庆地区,分类为food,标签为good,类型为xxxx的文章,并按修改时间排序。

为了方便通过点击自动生成上述链接,你可能需要了解一下:add_query_arg() 和 remove_query_arg() 这两个函数。如果多重筛选需要分页,你可能需要 WP-PageNavi这个插件配合上面的代码使用

  1. wp_pagenavi( array( 'query' => $query ) );  

上述方法是WordPress实现多重筛选最优质的思路,因为全部都是通过官方函数提供的功能实现的。网上其他有一些方法,比如通过多个tag等实现,但如果遇到需要自定义字段的区间筛选就歇菜了。

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有M币奖励和额外收入!

模板下载吧 Wordpress教程 WordPress按自定义字段、分类、标签等多重筛选并排序 https://www.mbxzb.com/blog/wordpress/44690.html

从明天起,做一个幸福的人,喂马、劈柴、周游世界…

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用
查看详情

相关文章

评论
暂无评论
点击按钮快速添加回复内容: 支持 高兴 激动 给力 加油 苦寻 生气 回帖 路过 威武 友军 顶贴
官方客服团队

为您解决烦忧 - 24小时在线 专业服务