2017.01.20   Web ,

カテゴリ一覧でスラッグごとに条件分岐したいときの方法は?

WordPressでも記事やコンテンツ重視でいくならばそこまで気にしなかった分野だとは思うのだが、いよいよカテゴリ一覧(category.php)内で条件分岐をさせなけらばならないときはきた。方法はいろいろあるのだろうが、取り急ぎ簡単にできるものだけ引用しておくことにした。

is_categoryもしくはin_categoryをつかう

is_categoryはどうやって使うのか?一般的にはこんな感じだ。

<?php if (is_category(‘sample’)) { ?>
…ここに表記したものは、スラッグ『sample』一覧のときだけ表示される
<?php } ?>

is_categoryで複数カテゴリーに適応させる場合はこんな感じだ。

<?php if (is_category(array(‘test1′,’test2′,’test3′,’test4’))) { ?>
test1,test2,test3,test4のいずれかのスラッグの一覧ページで表示される
<?php } ?>

子カテゴリも親カテゴリごとまとめて適応させる場合は?

<?php if (is_category(‘test5’) || cat_is_ancestor_of(test5のID, $cat)) { ?>
test5という親カテゴリ及び以下の子カテゴリすべての一覧ページで表示される
<?php } ?>

参考:is_categoryとin_categoryの違いや使い方、条件分岐、複数指定、子孫カテゴリがある場合などなど


カテゴリの条件分岐ができれば、今度はタグ一覧だ。

ひとつの指定したタグだけ表示させたい場合は?

<?php if( has_tag( ‘タグのスラッグ’ )) : ?>
このタグの場合に表示するもの
<?php endif; ?>

ひとつの指定したタグだけ表示、その他も指定したいときは?

<?php if( has_tag( ‘タグのスラッグ’ )) : ?>
ここは空白
<?php else: ?>
それ以外のタグで表示するものを入力する
<?php endif; ?>

複数のタグを指定して表示させたい場合は?

<?php if( has_tag( array( ‘タグのスラッグ’, ‘タグのスラッグ’ ))) : ?>
ここは空白
<?php else: ?>
それ以外のタグで表示するものを入力する
<?php endif; ?>

参考:記事のカテゴリとタグで表示を出し分けるWordPressテンプレートタグ in_category, has_tag


おまけ:管理画面の親子カテゴリ位置を保持するには?

そうなのだ。カテゴリ別に表示を変える必要がでてくると、次第に親カテゴリと子カテゴリの住み分けや表示も必要になってくることがある。そこは参考URLをみながらうまいことやってほしい。今回はおまけとして、Wordpressの投稿時にカテゴリをチェックする際、子カテゴリだけをチェックすると、親カテゴリを無視して一覧の一番上に表示されてしまうという、厄介なシステムがある。今回は、function.phpに記入するだけで管理画面の親子カテゴリ位置を保持できるコードをメモしておく。

function solecolor_wp_terms_checklist_args( $args, $post_id ){
if ( $args[‘checked_ontop’] !== false ){
$args[‘checked_ontop’] = false;
}
return $args;
}
add_filter(‘wp_terms_checklist_args’, ‘solecolor_wp_terms_checklist_args’,10,2);


参考:HTML実体参照変換


槍の間合いもまだまだだな。


枯れ木も山の賑わい。


HTML Wordpress メタルギア モノゴト 丁寧 万年筆 今宵 体感 作業 判断 北海道 単純 太陽 実験 容姿 心地よい 思考 意識 感覚 撮影 文化 映像 時間 本質 歩く 物語 環境 生活 瞬間 空間 簡単 精神 経験 自然 色彩 表現 要素 言葉 記憶 質素 身体 過去 違和感 雰囲気 風景

Copyright © 2014 kojinao. All rights reserved.