WordPress 通过自定义分类法(post custom taxonomy)来筛选文章_WordPress教程

WordPress 通过自定义分类法(post custom taxonomy)来筛选文章_WordPress教程

有很多人找点启资源做筛选功能,不管是自定义字段筛选还是分类法筛选,或者分类与标签筛选,其实都大同小异,这里点启资源提供自定义分类法筛选文章的功能教程。 首先,新建自定义分类法,这里举例两个: add_action('init', 'MBT_post_type'); ...

有很多人找点启资源做筛选功能,不管是自定义字段筛选还是分类法筛选,或者分类与标签筛选,其实都大同小异,这里点启资源提供自定义分类法筛选文章的功能教程。

首先,新建自定义分类法,这里举例两个:

add_action('init', 'MBT_post_type');
 function MBT_post_type() {
 register_taxonomy(
 'people',
 'post',
 array(
 'label' => '人物',
 'rewrite' => array( 'slug' => 'people' ),
 'hierarchical' => true
 )
 );
 register_taxonomy(
 'company',
 'post',
 array(
 'label' => '企业',
 'rewrite' => array( 'slug' => 'company' ),
 'hierarchical' => true
 )
 );
 }

加入以上代码后,需要在后台更新下固定链接(设置-固定链接,不用改什么,点保存更改即可)。

再者就是建立筛选页面,这里主要放出主要筛选代码。
获取需要筛选的元素列表:

 $arr = array(1,2,3); //数组
 if(count($arr) > 0){
 foreach($arr as $people){
 $p = get_term_by("id",$people,"people");
 $class = ($_GET['people'] == $people)?'active':'';
 echo '<a href="https://www.mobantu.com/6637.html?people='.$people.'" class="'.$class.'" rel="nofollow">'.$p->name.'</a>';
 }
 }

处理筛选逻辑:

$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 if(isset($_GET['people'])){
 $args = array(
 'post_type' => 'post',
 'tax_query' => array(
 array(
 'taxonomy' => 'people',
 'field' => 'term_id',
 'terms' => $_GET['people'],
 ),
 ),
 'paged' => $paged
 );
 }else{
 $args = array(
 'post_type' => 'post',
 'paged' => $paged
 );
 }
 query_posts($args);
while ( have_posts() ) : the_post();
//循环列表的item
endwhile; wp_reset_query();

以上代码就是当传入一个people的tag_id时,就筛选出当前人物的文章。

值得注意的是,通过筛选后的文章分页,可能需要去掉最后的wp_reset_query(); 具体情况看你们自己测试分页时是否有效。

以上介绍的是单层筛选,当然还可以多层筛选,有需要的可以找点启资源定制开发~

原文链接:https://www.dqzy.cn/2025/05/12/570.html,转载请注明出处。 1、本站所有源码资源(包括源代码、软件、学习资料等)仅供研究学习以及参考等合法使用,请勿用于商业用途以及违法使用。如本站不慎侵犯您的版权请联系我们,我们将及时处理,并撤下相关内容! 2、访问本站的用户必须明白,本站对所提供下载的软件和程序代码不拥有任何权利,其版权归该软件和程序代码的合法拥有者所有,请用户在下载使用前必须详细阅读并遵守软件作者的“使用许可协议”,本站仅仅是一个学习交流的平台。 3、如下载的压缩包需要解压密码,若无特殊说明,那么文件的解压密码则为:www.dqzy.cn。 4、点启资源网是一个免费且专业分享网站源码、图片素材、特效代码、教程文章、站长工具的平台。我们努力给站长提供好的资源!
0

评论0

请先
显示验证码
没有账号?注册  忘记密码?