サポート » 使い方全般 » functions.phpでカテゴリーIDを元に投稿一覧の表示

  • Ajax非同期通信で、page-test.phpで受け取ったカテゴリーIDを元にサイドバーに表示する内容を作成する際に、page-test.phpで<?php echo cat_get( $data ); ?>とし、functions.phpで、予め判っているカテゴリーのIDを元に、以下の様にした場合、カテゴリー名は取得でき表示されるのですが、それに含まれる投稿の一覧が全て最古の同じタイトルが表示されます。

    これはどういう訳でそうなるのでしょうか、また改善策はあるのか、ご教授頂けないでしょうか。

    function cat_get( $data ) {
    
    	$categories = get_the_category( 'include='.$data );
    	foreach( $categories as $cat ) :
        	echo '<ul><li class="widget-container"><h3 title="'.$cat->cat_name.' の投稿一覧">'.$cat->cat_name.' の投稿一覧</h3><ul>';
    	endforeach;
    
    	$catposts = get_posts( 'order=desc&orderby=date&numberposts=-1&category='.$data );
    	foreach( $catposts as $post ) : setup_postdata( $post );
    		echo '<li><a href="';
    		the_permalink();
    		echo '#';
    		the_ID();
    		echo '" title="';
    		the_title();
    		echo '">';
    		the_title();
    		echo '</a></li>';
    	endforeach;
    
    }

    宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック投稿者 eijiy

    (@eijiy)

    毎度お騒がせしております。

    以下の様にして自己解決しました。

    function cat_get( $data ) {
    
    	$categories = get_the_category( 'include='.$data );
    	foreach( $categories as $cat ) :
        	echo '<ul><li class="widget-container"><h3 title="'.$cat->cat_name.' の投稿一覧">'.$cat->cat_name.' の投稿一覧</h3><ul>';
    	endforeach;
    
    	$posts = get_posts( 'order=desc&orderby=date&numberposts=-1&category='.$data );
    	foreach( $posts as $post ) : setup_postdata( $post );
    		echo '<li><a href="';
    		echo get_permalink( $post );
    		echo '#';
    		the_ID();
    		echo '" title="';
    		echo get_the_title( $post );
    		echo '">';
    		echo get_the_title( $post );
    		echo '</a></li>';
    	endforeach;
    
    }

    有難うございました。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「functions.phpでカテゴリーIDを元に投稿一覧の表示」には新たに返信することはできません。