カスタムフィールドの値でclassを出し分けする

このエントリーをはてなブックマークに追加

WordPressサイトの構築で、カスタムフィールドでセレクトボックスを使い、カテゴリのような使い方をするというのを制作しました。
このカスタムフィールドの値によって、値の外側にあるdivに対してclassの出し分けを行いたいと考えました。

最初はそのままカスタムフィールドの値を出せばいいのかなと思ったのですが、テキスト(日本語)がそのまま入っているのでclassとしては使えないため、こんな風にしてみました。

functions.php に判定を追加

functions.phpの中で新しいfunction「cate-class」というのを作成。
カスタムフィールドの文字列で一致するものそれぞれに対してclass名を出せるようにします。

function cate_class() {
	$custom_cate = post_custom( 'カテゴリ' );
	if ( $custom_cate == 'カテゴリA' ) {
		echo 'cateA';
	} else if ( $custom_cate == 'カテゴリB' ) {
		echo 'cateB';
	} else {
		echo 'no-category';
	}
}

テンプレートの中で使用

functions.phpで作ったfunctionをテンプレートの中で使用します。

<span class="<?php echo cate_class() ?>"><?php echo post_custom( 'カテゴリ' ) ?></span>

文字列がない場合は出力しないというのでも良いかとも思ったのですが、その場合はその後のechoもいらないので、

<?php if ( get_post_meta($post->ID,'カテゴリ',TRUE) ): ?>
<span class="<?php echo cate_class() ?>"><?php echo post_custom( 'カテゴリ' ) ?></span>
<?php endif; ?>

という感じで。

お問い合わせはこちら