• 解決済 yoshio39

    (@yoshio39)


    現在、カテゴリに含まれる記事一覧をタグ名ごとに分けて表示しています。
    これはうまくいっているのですが、タグ名が付いていない記事を表示するにはどうしたらいいのか悩んでいます。

    最終的には下記のように、タグの付いていない記事を「タグなし」と表示したいと思っています。

    カテゴリ
    タグ1    記事1
           記事2
           記事5

    タグ2    記事3

    タグなし   記事4
           記事6

    つたないソースですが、下記のようなショートコードでタグのある記事までは表示されています。

    function func_cat_tag_list($atts){
    	extract(shortcode_atts(array(
    		'num'   => -1, // 記事の表示数
    		'cat' => 0 // カテゴリIDを指定
    	), $atts));
    	$tmp='';
    	$posttags =  get_terms("post_tag", "fields=all");
    	if ($posttags) {
    		foreach($posttags as $tag) {
    			$tmp2='';
    			$tmp2.= "<tr><td><a href='".get_tag_link($tag->term_id)."'>".$tag->name . "</a></td>";
    			$tmp2.='<td><ul>';
    			query_posts('showposts='.$num.'&tag_id='.$tag->term_id.'&cat='.$cat);
    			if (have_posts()):
    				while (have_posts()) : the_post();
    					$tmp2.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    				endwhile;
    				$tmp2.='</ul></td>';
    				$tmp2.= "</tr>";
    				$tmp.=$tmp2;
    			endif;
    			wp_reset_query();
    		}
    		if($tmp){
    			$tmp ='	<h2>タグ一覧</h2><table>'.$tmp.'</table>';
    		}else{
    			$tmp ='No Data';
    		}
    	}
    	return $tmp;
    }
    add_shortcode('cat_tag_list', 'func_cat_tag_list');

    どなたかお力をお貸しください。
    よろしくお願いいたします。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 最初のforeach文の抜けたところにこうかな?

    query_posts('showposts='.$num.'&cat='.$cat);
    			if (have_posts()):
    				$tmp2='';
    
    				while (have_posts()) {
    					the_post();
    					$post_have_tags = false;
    					foreach($posttags as $tag) {
    						if( has_term( $tag->term_id, $tag->taxonomy  ) ) {
    							$post_have_tags = true;
    							break;
    						}
    					}
    					if( !$post_have_tags )
    						$tmp2.='<li><a href="'.get_permalink().'">'.get_the_title().'</a></li>';
    				}
    
    				$tmp.=$tmp2;
    			endif;
    			wp_reset_query();

    前後の修飾は適当に追加して下さい

    トピック投稿者 yoshio39

    (@yoshio39)

    返信ありがとうございます。
    ばっちり、タグの付いていない記事の一覧が表示できました。

    has_termという関数でタグに属しているかを判断していくんですね。

    ありがとうございました & 勉強になりました。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「タグの付いていない記事一覧を表示したい。」には新たに返信することはできません。