web-dev-qa-db-ja.com

1つのメインカテゴリー内に、サブカテゴリーとそれに含まれる投稿のリストを表示します

いろいろなことをするためのたくさんのコードとプラグインを見つけました。特定の猫、猫のサブキャットなどのためのショーポストから。しかし、私は自分の人生のために見つけることができない、また私がそれで必要なことをするのに十分にWP AP​​Iを知らない。

これが私が達成しようとしているものです:

Cat31内のすべてのサブキャットのULと、それらの各サブキャットの投稿を表示します。

  • SubCat1

    • 投稿1
    • 投稿2
  • SubCat2

    • 投稿1
    • 投稿2
  • SubCat3

    • 投稿1
    • 投稿2

それはかなり単純明快です、しかし私が試みたすべてのループはsubcatループかpostループのどちらかで失敗します(どちらか一方の仕事、私は両方を働かせることができません..)

そのため、これを行うためのプラグインが見つからない場合(これをテンプレートファイルにコード化することをお勧めします)、そうでない場合は、次の方法を考え出す必要があります。

サブキャストのループ中にCat31内でサブキャットをループし、各サブキャットのポストをループします

任意の助けは大歓迎です!

3
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>';
}
2
revive

これは、WP投稿からPodcastページを作成するための最後のコードです。だれでもそれから利益を得ることができる場合。

<?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のすべての投稿をループ処理し、サブカテゴリとその投稿を表示します。最初にPodcastシリーズのためにPODCASTS(cat。31)とその中のサブカテゴリーのカテゴリーを作成しました。

結果は、私たちのメインのポッドキャスト猫の中にあるサブキャットのリストです。

Sub cat1ポッドキャスト1ポッドキャスト2ポッドキャスト3

Sub cat2ポッドキャスト1ポッドキャスト2ポッドキャスト3

助けてくれてありがとう!

1
revive