[wordpress] if 特定のカテゴリーなら

wordpress

どっちがどっち??使う時に忘れてしまうので覚え書き。特定のカテゴリーの時だけ何かしたい時の書き方です。

これが出来ると、カスタマイズの幅が広がりますね。苦手の人は基本、コピペ+最小限のカスタマイズで乗り切れます!

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;

Leave a Reply

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

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください