本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
有很多人找魔扣科技做筛选功能,不管是自定义字段筛选还是分类法筛选,或者分类与标签筛选,其实都大同小异,这里魔扣科技提供自定义分类法筛选文章的功能教程。 首先,新建自定义分类法,这里举例两个: - 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="?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(); 具体情况看你们自己测试分页时是否有效。 以上介绍的是单层筛选,当然还可以多层筛选,有需要的可以找模板兔定制开发~
|