在一个主类别中显示子类别及其包含的帖子的列表

时间:2011-09-14 作者:revive

我找到了大量的代码和插件来做各种事情;来自特定猫的显示帖子、猫的子类等。。但是,我一生都找不到WP API,也不太了解WP API,无法满足我的需要。。

以下是我正在努力实现的目标:

显示Cat31内所有子类别的UL,以及每个子类别的帖子:

  • SubCat1

    第1篇第2篇SubCat2

    第1篇第2篇SubCat3

    这很简单,但我尝试过的所有循环都在subcat循环或Post循环中失败(一个或另一个有效,我无法让它们都有效……)

    所以,除非我能找到一个插件来实现这一点(我更愿意将其编码到模板文件中!)然后我需要弄清楚如何:

    循环Cat31内的子类别,同时循环子类别,循环每个子类别的帖子

    非常感谢您的帮助!

2 个回复
最合适的回答,由SO网友:revive 整理而成

问题在另一个网站上得到了回答。。非常感谢。顺便说一句,完成我需要的代码是:

$categories =  get_categories(\'child_of=31\');  
foreach  ($categories as $category) {
    //Display the sub category information using $category values like $category->cat_name
    echo \'<h2>\'.$category->name.\'</h2>\';
    echo \'<ul>\';

    foreach (get_posts(\'cat=\'.$category->term_id) as $post) {
        setup_postdata( $post );
        echo \'<li><a href="\'.get_permalink($post->ID).\'">\'.get_the_title().\'</a></li>\';   
    }  
    echo \'</ul>\';
}

SO网友:revive

下面是用WP帖子创建播客页面的最终代码。以防任何人都能从中受益。

<?php     
    $categories =  get_categories(\'child_of=31\');  
    foreach  ($categories as $category) {
        //Display the sub category information using $category values like $category->cat_name

        // display category image, if one exists - place image in /images/podcast_images/ dir  
        $cat_img = \'\';
        if(get_bloginfo("url") .\'/wp-content/images/podcast_images/\' . $category->slug . \'.jpg\' != \' \') {$cat_img = \'<img class="podcast_category_image" src="\'.get_bloginfo("url") .\'/wp-content/images/podcast_images/\' . $category->slug . \'.jpg" />\';} 

       echo \'<h2 class="podcast_h2">\'.$cat_img.$category->name.\'</h2>\'; 
        // start a list for the podcasts
        echo \'<ul class="podcast_series">\';
        foreach (get_posts(\'orderby=post_date&category=\'.$category->term_id) as $post) {
            setup_postdata( $post );
            // format date
            $my_date = mysql2date(\'F j\\<\\s\\u\\p\\>S\\<\\/\\s\\u\\p\\>, Y\', $post->post_date);

            // load the custom fields for this post, if they have content
            if(get_post_meta($post->ID, \'Speaker\', true)){ 
                $speaker_name = \'<div class="speaker"><strong>Speaker: </strong>\'. get_post_meta($post->ID, "Speaker", true).\'</div>\';
            } else {
                $speaker_name = \'\';
            } 
            if(get_post_meta($post->ID, \'Scripture\', true)){ 
                $scripture = \'<div class="scripture"><strong>Scripture: </strong>\'. get_post_meta($post->ID, "Scripture", true).\'</div>\';
            } else {
                $scripture = \'\';
            } 
            // echo out the results into a list item
            echo \'<li><a href="\'.get_permalink($post->ID).\'">\'.get_the_title($post->ID).\'</a>\'.  $speaker_name . $scripture.\'<div class="podcast_date"> Recorded On: \'. $my_date .\'</div></li>\';   
        }
        // close the list
        echo \'</ul>\';
    } ?>
此代码将循环遍历类别31中的所有帖子(在本例中),并显示子类别及其帖子。我首先为播客(第31类)创建了一个类别,并在其中为播客系列创建了子类别。

结果是我们的主要播客cat中的子类别列表。。以及下面列出的每个子类别的帖子(播客):

子cat1播客1播客2播客3

子cat2播客1播客2播客3

谢谢大家的帮助!

结束

相关推荐

GET_CATEGORIES返回具有一个类别的数组

我正在一个自定义插件上运行一个查询,以显示所有类别,并将它们放入下拉列表(所选部分位于循环之外),如下所示:<?php $ember_categories = get_categories(); foreach($ember_categories as $ember_category) { echo \'<option value=\"\' . $ember_category->cat_ID . \'\">\' . $ember_category-&