どっちがどっち??使う時に忘れてしまうので覚え書き。特定のカテゴリーの時だけ何かしたい時の書き方です。
これが出来ると、カスタマイズの幅が広がりますね。苦手の人は基本、コピペ+最小限のカスタマイズで乗り切れます!
INDEX
contents.phpや、single.phpに書くとき
<?php if(in_category('カテゴリーのスラッグ名')) : ?>
特定のカテゴリーならしたい処理
<?php eles: ?>
それ以外なら・・の処理 (無いなら書かなくてもOK)
<?php endif; ?>
カテゴリーがinformationなら、template-parts/info.phpを使う
<?php if(in_category('information')) : ?>
<?php get_template_part('template-parts/info'); ?>
<?php eles: ?>
<?php endif; ?>
カテゴリーがinformationなら、日にちを挿入する。
<?php if(in_category('information')) : ?>
<?php the_date('Y年m月d日'); ?>
<?php eles: ?>
<?php endif; ?>
記事一覧のphpに書くとき
「is」を使います。 if(is_category(‘カテゴリーのスラッグ名’))
<?php if(is_category('カテゴリーのスラッグ名')) : ?>
特定のカテゴリーならしたい処理
<?php eles: ?>
それ以外なら・・の処理 (無いなら書かなくてもOK)
<?php endif; ?>
応用:WP Bootstrap Starterのカスタマイズ
前提:WP Bootstrap Starter を使用しています。
single.phpはカテゴリーページの様に、single-スラッグ名.phpとしても専用テンプレートにはなりません。そこで、
template-parts内にあるcontet.phpをカテゴリーに応じてカスタマイズしたい場合、スマートな方法ではないかもしれませんが 例としてifで切り替える様にしてみました。
準備
子テーマに、single.phpとtemplate-partsフォルダの新設とその中にcontent.phpをコピーします。content-スラッグ名.phpに変更します。
ifで振り分ける
single.phpの以下の・・の部分を書き換えます。
<?php
while ( have_posts() ) : the_post();
.
.
the_post_navigation();
single.phpの・・の部分を書き換えます。
カテゴリーがnewsの時は、content-newsを使用する。
if(in_category('news')) :
get_template_part('template-parts/content-news');
eles:
get_template_part( 'template-parts/content', get_post_format() );
endif;
[WordPress] if 分岐 投稿タイプ/カスタムフィールド
[wordpress] if 特定のカテゴリーならで、ベーシックな使い方をご紹介しましたが、今回は「カスタム投稿の場合」と「カスタムフィールド」の分岐についての覚書です。分…
コメント ※ハンドルネームでお願いします