行业新闻

    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



X