ブログ

特定のカテゴリ名を特定の場所だけ改行する

ぱんくずやページタイトルとして表示されるには問題ないけど、記事一覧で表示するときには改行したい長いカテゴリ名があるときに。

やりたいこと

「あめんぼあかいな・あいうえお」というカテゴリをアーカイブページで一覧表示するブロックの中だけ「・」の後で改行させたい。

パンくずやページタイトルなどで表示する際には改行は必要ない。

<div class="taxonomies">
	<?php
		$cat = get_the_category();
		$cat = $cat[ 0 ]; {
			echo '<p class="blog_cat ' . $cat->category_nicename . '">';
		}
	?>
	<?php
		if($cat->cat_name == 'あめんぼあかいな・あいうえお'){
			$categories_br = $cat->cat_name; 
			echo str_replace("・","・<br>",$categories_br); 
		}else{
			$cat = get_the_category(); $cat = $cat[0]; { echo $cat->cat_name; } 
		} 
	?>
	</p>
</div>

9行目

if文でカテゴリ名が「あめんぼあかいな・あいうえお」かどうか判定

10行目

$categories_br = $cat->cat_name;

変換用に別変数にカテゴリ名(あめんぼあかいな・あいうえお)を預けて

11行目

str_replace("・","・<br>",$categories_br); 

「・」を「・<br>」に置き換える。

工夫した点

9行目の

if($cat->cat_name == 'あめんぼあかいな・あいうえお')

で「あめんぼあかいな・あいうえお」と一致するかどうかの分岐をしているので、一致する際は「・」の後に改行(<br>)を追加。それ以外のカテゴリの時はカテゴリ名をそのまま出力しています。

カテゴリ名に「・」が入っていても短くて改行が必要ないカテゴリも混在する場合には改行していカテゴリを指定してあげればOK.