記事のカテゴリ表示をいじったら

複数件のカテゴリに属する場合、一つしか表示されなくなってしまった。
以下、元のコード。

<?php $cat = get_the_category();
	$cat = $cat[0]; {
		echo "\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<a href=\"" . get_bloginfo('home') . '/category/' . $cat->category_nicename . "\" title=\"" . $cat->cat_name . " カテゴリの投稿をすべて表示\"  rel=\"category\">" . $cat->cat_name . "</a>\n\t\t\t\t\t\t</li>\n";
	}
?>

$cat[0] ってのがなんか怪しげ。0 番目のデータを取り出すよ!ってことだよね。
取り急ぎデフォルトのテンプレートタグを利用して表示することにした。

修正後のコードは以下の通り。

<li>
<?php the_category("\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t"); echo "\n" ?>
</li>

the_category の出力に関することは wp-includes/category-template.php の L.140 前後にある。そこもちょっと修正。

ところで、元のコードみたいに echo の行がだらだらと長いときって、途中で適当に改行していいものなんだろうか。
“\n” とか <br /> とかしない限り出力されるものは改行されないから、コードの段階では見やすいように書くといいのかなぁ。

あと、もう一つ疑問。
修正後のコードに ? ); echo “\n” ?> という部分があるけど、これがないと XHTML 側で余分な空白行を入れないとならんので思いついてやってみました。
エラーもなくちゃんと改行されてるからおっけーなんだろうけど、一般的にはどうやって処理するんでしょー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です