行业新闻
wordpress 分类 文章数WordPress 按自定义字段、类别、标签等进行过滤和排序。
2022-07-11 来源:www.8001717.cn
言归正传,实现文章多重过滤的核心函数是(),基于PHP,直接看官方文档应该可以解决标题中提到的多重过滤功能。效果图示例:
下面我将做一些简单的介绍:
假设文章有一个自定义字段:area存储区域信息,比如重庆,比如北京等。另外一个字段是type,存储类型。
// 分类 if(isset($_GET['cat'])) { $cat_name=$_GET['cat']; } // 标签 if(isset($_GET['tag']) ){ $tag=$_GET['tag']; } // 自定义字段:area if(isset($_GET['area']) ){ $array_temp = array('key' => 'area', 'value'=>$_GET['area'], 'compare'=>'='); array_push($metaArray,$array_temp); } // 自定义字段:type if(isset($_GET['type']) ){ $array_temp = array('key' => 'type', 'value'=>$_GET['type'], 'compare'=>'='); array_push($metaArray,$array_temp); } //正反顺序 if(isset($_GET['order'])){ $order=$_GET['order']; } else $order = 'DESC'; //默认按时间排序 $orderby='date'; //如果用户设置了按文章特定字段价排序 if(isset($_GET['orderby'])){ if($_GET['orderby'] == 'views'){ $array_temp = array('key' => 'views'); array_push($metaArray,$array_temp); $orderby='meta_value_num'; } else $orderby = $_GET['orderby']; //否则按wp自带排序字段 } //获取上述参数,组成查询条件 $args = array( 'meta_query' => $metaArray, 'category_name' = >$cat_name, 'tag'= $tag_name, 'order' => $order,//DESC, 'orderby' => $orderby, ); //查询文章 $query = new WP_Query( $args );
输出:
have_posts()) : $query->the_post(); ?>
我这里只设置了输出标题。这才是重点。通过以上代码wordpress网站建设,可以实现标签、分类、区域和类型四种条件的多重筛选。
$_GET['cat'])
这里指的是从URL获取的值,比如
?area=重庆&cat=food&tag=good&type=xxx&=
获取的文章来自重庆地区wordpress 分类 文章数,分类为食物,标注为好,输入为xxxxwordpress 分类 文章数,按修改时间排序。
为了方便点击自动生成上述链接,您可能需要了解:()和()这两个函数。如果多个过滤器需要分页wordpress建站,你可能需要 WP-this 插件与上面的代码一起使用
(数组('query' => $query));
以上方法是实现多重筛选的最佳方式,因为都是通过官方提供的函数来实现的。网上还有其他的方法,比如通过多个标签等,但是如果遇到需要自定义字段的区间过滤,就会停下来。
文章来自互联网,侵权请联系删除,文章阐述观点来自文章出处,并不代表本站观点。 www.8001717.cn
