如何从Wordpress主页中排除特定类别?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (101)

我在Wordpress网站上有2个页面。所有2页都显示帖子。我需要限制第一页中的几个类别和第二页中的其他几个类别。

   <?php
    function excludeCat($query) {
      if ( $query->is_home ) {
        $query->set('cat', '-3,-5,-23');
      }
      return $query;
    }
    add_filter('pre_get_posts', 'excludeCat');
    ?>

这个将无法工作,因为它将阻止所有2页的类别。

提问于
用户回答回答于

我在最近的一个项目中应用了这样的方法,这是我们的解决方案:

<div class="blog-categories">
<h3>Categories</h3>
<ul>
    <?php
        $args = array(
            'show_option_all'    => '',
            'orderby'            => 'name',
            'order'              => 'ASC',
            'style'              => 'list',
            'show_count'         => 0,
            'hide_empty'         => 0,
                // 'hide_empty'         => 1,
            'use_desc_for_title' => false,
            'child_of'           => 0,
            'feed'               => '',
            'feed_type'          => '',
            'feed_image'         => '',
            'exclude'            => '1',
            'exclude_tree'       => '',
                /*
                    ** Note: Hover over a category in 'Posts > Categories' WordPress menu and see link on bottom left of screen to find category ID
                */
            'include'            => array( 7, 8, 9, 10, 15 ),

                // 'include'            => '',
            'hierarchical'       => 1,
            'title_li'           => 0,
            'show_option_none'   => __( '' ),
            'number'             => null,
            'echo'               => 1,
            'depth'              => 0,
            'current_category'   => 0,
            'pad_counts'         => 0,
            'taxonomy'           => 'category',
            'walker'             => null,
                'show_option_all'    => 'All',
        );
        wp_list_categories( $args );
    ?>
</ul>

用户回答回答于

我记得在最近的一个项目中做过类似的事情,这是我们的解决方案:

<div class="blog-categories">
  <h3>Categories</h3>
    <ul>
        <?php
            $args = array(
                'show_option_all'    => '',
                'orderby'            => 'name',
                'order'              => 'ASC',
                'style'              => 'list',
                'show_count'         => 0,
                'hide_empty'         => 0,
                'use_desc_for_title' => false,
                'child_of'           => 0,
                'feed'               => '',
                'feed_type'          => '',
                'feed_image'         => '',
                'exclude'            => '1',
                'exclude_tree'       => '',
                'include'            => array( 7, 8, 9, 10, 15 ),
                'hierarchical'       => 1,
                'title_li'           => 0,
                'show_option_none'   => __( '' ),
                'number'             => null,
                'echo'               => 1,
                'depth'              => 0,
                'current_category'   => 0,
                'pad_counts'         => 0,
                'taxonomy'           => 'category',
                'walker'             => null,
                'show_option_all'    => 'All',
            );
            wp_list_categories( $args );
        ?>
    </ul>
</div>

请注意特定类别ID的包含和排除。

可以在“帖子>类别”WordPress菜单中查看某个类别,并查看屏幕左下方的链接以查找类别ID。

wp_list_categories()上的文档 :https://developer.wordpress.org/reference/functions/wp_list_categories/

扫码关注云+社区

领取腾讯云代金券