[wordpress] if 特定のカテゴリーならで、ベーシックな使い方をご紹介しましたが、今回は「カスタム投稿の場合」と「カスタムフィールド」の分岐についての覚書です。分岐を使いこなせれば、個々のテンプレートが増えずに済むので管理も楽になりますね。
使いこなせる様になりたいです。
INDEX
カスタム投稿の分岐
使える状態になっている事が前提です。下記の記事を参照下さい。
カスタム投稿の関連記事
if 投稿タイプ名なら
singleページにカスタム投稿タイプの記事だけテンプレートを挿入したい時
※テンプレートではなく、直接書いてもOKです
子テーマの中に[myphpfiles]という名前のフォルダを作り、挿入したいテンプレート(info-tokyo.php)を入れておく事とします。
- 投稿タイプ名:city
<?php if (get_post_type() === 'city'): ?>
<?php get_template_part('myphpfiles/info-tokyo'); ?> //実行したい処理
<?php endif; ?>
if タクソノミー(カテゴリ)なら
カスタム投稿タイプを設定、その下層にタクソノミー(カテゴリ)を設定している事とします。
singleページにタクソノミー(カテゴリ)に応じたテンプレートを挿入したい時
※テンプレートではなく、直接書いてもOKです
子テーマの中に[myphpfiles]という名前のフォルダを作り、挿入したいテンプレート(info-tokyo.php)を入れておく事とします。
- 投稿タイプ名:city
- タクソノミー名(各カテゴリーのスラッグ名):tokyo、osaka など
もし、カテゴリーがtokyoなら、info-tokyo.phpを。osakaなら、info-osaka.phpを使う。
<?php if (has_term('tokyo','city') && is_single()): ?>
<?php get_template_part('myphpfiles/info-tokyo'); ?> //実行したい処理
<?php elseif (has_term('osaka','city') && is_single()): ?>
<?php get_template_part('myphpfiles/info-osaka'); ?> //実行したい処理
<?php else : ?>
<?php endif; ?>
カスタムフィールドの分岐
カスタムフィールド関連記事
例題が雑ですが、応用次第では便利です。
- 名前:味
- 値:good / bad
goodなら「美味しいです」を表示し、badなら「不味いです」を表示します。
<?php if(get_post_meta($post->ID,'味',true) == 'good'): ?>
<p>美味しいです</p>
<?php elseif (get_post_meta($post->ID,'味',true) == 'bad'): ?>
<p>不味いです</p>
<?php else : ?>
<?php endif; ?>
コメント ※ハンドルネームでお願いします