wordpress分类列表页面显示该分类下的子分类文章列表

给客户仿制一个网站,需要在分类列表页面下调用显示该分类目录下的所有子分类的各自文章列表,该显示效果在很多CMS网站中很常见也很流行!对于wordpress程序,创建好网站的分类和相关子分类后,可以通过下面的代码实现,该代码可以实现当目前分类下存在子分类的时候,则分类列表页面列出所有子分类的各自文章列表,如果当前分类下不存在子分类的时候,则显示该分类的文章列表!

wordpress分类列表页面显示该分类下的子分类文章列表

把以下代码调整后添加到主题的category.php文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
<?php
    global $cat;
    $cats = get_categories(array(
        'child_of' => $cat,
        'parent' => $cat,
        'hide_empty' => 0
    ));
    $c = get_category($cat);
    if(empty($cats)){
?>
<div class="item">
    <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
    <div class="post">
        <h2><a title="<?php the_title(); ?>" href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
        <p><?php the_excerpt(); ?></p>
        <p><a href="<?php the_permalink(); ?>">全文阅读>></a></p>
        <div class="meta"><?php the_time('Y-m-d'); ?> | 标签: <?php the_tags('', ' , ', ''); ?></div>
    </div>
    <?php endwhile; ?>
    <?php else: ?>
        <div class="post"><p>文章稍后更新</p></div>
    <?php endif; ?>
</div>
<div class="navigation">
    <span class="alignleft"><?php next_posts_link('&laquo; Older posts') ?></span>
    <span class="alignright"><?php previous_posts_link('Newer posts &raquo;') ?></span>
</div>
<?php
}else{
    foreach($cats as $the_cat){
        $posts = get_posts(array(
            'category' => $the_cat->cat_ID,
            'numberposts' => 10,
        ));
        if(!empty($posts)){
            echo '
            <div class="item cat_item">
                <div class="item_title"><h2><a title="'.$the_cat->name.'" href="'.get_category_link($the_cat).'">'.$the_cat->name.'</a></h2></div>  
                <ul class="box_list">';
                    foreach($posts as $post){
                        echo '<li><span class="alignright">'.mysql2date('Y-m-d', $post->post_date).'</span>
                        <a title="'.$post->post_title.'" href="'.get_permalink($post->ID).'">'.$post->post_title.'</a></li>';
                    }
                echo '</ul>
            </div>';
        }
    }
}
?>

代码来自:Wopus问答

网友留言:

  1. 2016-12-02回复

    牛逼啊
    用你的代码 我改了之后可以显示了

  2. 2016-09-29回复

    感谢博主,用这个方法做好了想要的页面~

  3. 2016-08-16回复

    怎么成乱码了 添加了之后

    • 博主板凳
      2016-08-17回复

      请使用专业的代码编辑软件修改,文件编码UTF8无bom

  4. 2016-05-01回复

    您好,博主。
    首先感谢你,按照你的方法调取导航分类目录文章列表成功,但是出现了一个小问题。
    我的一个分类目录有5篇文章,但只显示了2篇出来,请问怎么修改?

  5. 2016-03-12回复

    能分享css文件吗?

  6. 2015-11-27回复

    请教下:<a title="” href=””> 我想让它显示的文章升序或降序排列要怎么修改呢?

  7. 2015-09-24回复

    你好,大神,我想只在首页显示特定的两个栏目,应该怎么改代码,我不想显示全部,求指教

    • 博主板凳
      2015-09-24回复

      调用指定分类文章代码:http://www.boke8.net/wordpress-cat-new-post.html

      • 2015-09-25回复

        我今天才看到,试了下。就是你所发的是全文输出的,这个不是大问题,问题就在于会出现最近更新,分页码数乱了,首页和第二页一样,比较乱。

        • 博主板凳
          2015-09-27回复

          后面加< ?php wp_reset_query();?>

  8. bob
    2015-08-15回复

    怎么只能获取下面的一个子分类?其它子分类显示不了?

    • 博主板凳
      2015-08-16回复

      子分类下有文章才会显示

  9. 2015-06-02回复

    补充一下,我的主题是网上下载的,主题下面只有一个 function.php 文件,其他都没有。

  10. 2015-06-02回复

    你好,我实在不知道该怎么做。。求指导。。我先在把这个文件放到了 //www/wp-content/themes/我的主题/ 目录下了。

    我不确定,我打开的URL是不是对的,我是写的:www.XX.com/category.php
    但是,总是显示404.我实在不知道哪里错了。求指导。。谢谢

    • 博主板凳
      2015-06-04回复

      这个代码是打开分类栏目页面自动调用的,当该分类存在子分类的时候就如上面那样显示。

  11. 2015-05-22回复

    你好,
    不确定你能否看到该邮件,不过还是要试一试。

    我的网站有很多文章,我想新建一个页面,显示网站所有的分类,一级分类下的文章,如同你所展示的那样。

    我遇到的问题是:
    我的主题下,没有category.php文件。能否指明,具体应该如何操作?

    谢谢

    • 博主板凳
      2015-05-22回复

      创建一个category.php文件

      • 2015-05-23回复

        还是没有搞懂。。
        求指导。

        我新建了一个category.php文件,然后把代码copy进去后,在浏览器输入:www.cancoolercigs.com/category.php 提示404错误。找不到。。。

        • 博主板凳
          2015-05-24回复

          添加到主题的category.php文件

发表留言