WordPressで「特定の記事にだけバナーや共通コンテンツを表示したい」という場面はよくあります。この記事では、投稿IDやスラッグ、カスタムフィールド、カテゴリーなどの条件に応じて、共通パーツを柔軟に表示する方法を紹介します。
投稿IDで共通パーツを表示する
もっともシンプルなのが投稿IDを使った方法です。特定のIDを持つ記事だけに共通パーツを表示できます。
<?php
if ( is_single(123) || is_single(456) ) {
get_template_part('template-parts/special-content');
}
?>
上記の例では、IDが 123
または 456
の記事でのみ template-parts/special-content.php
を読み込みます。
投稿スラッグで判定する方法
スラッグはURLにも使用される文字列なので、IDよりも可読性が高い場合があります。
<?php
if ( is_single('sample-post') || is_single('news-release') ) {
get_template_part('template-parts/special-content');
}
?>
投稿スラッグが sample-post
や news-release
の場合に限定して表示されます。
カスタムフィールドで制御する方法
記事ごとに表示・非表示を柔軟に切り替えたい場合は、カスタムフィールドが便利です。
<?php
$show_part = get_post_meta(get_the_ID(), 'show_special_part', true);
if ( $show_part === '1' ) {
get_template_part('template-parts/special-content');
}
?>
記事編集画面で show_special_part
というカスタムフィールドに 1
を指定するだけで、共通パーツが表示されます。
特定のカテゴリーで表示する方法
記事のカテゴリーに応じて共通パーツを表示したい場合は、has_category()
関数を使います。
<?php
if ( has_category('campaign') ) {
get_template_part('template-parts/special-content');
}
?>
この例では「campaign」というスラッグのカテゴリーに属する記事にだけ表示されます。
まとめ
任意の記事にだけ共通パーツを表示する方法は、さまざまな条件で制御できます。以下に主な条件と使用する関数をまとめました。
条件 | 使用する関数 |
---|---|
投稿ID | is_single(123) |
スラッグ | is_single('post-slug') |
カスタムフィールド | get_post_meta() |
カテゴリー | has_category() |
条件分岐とget_template_part()
を組み合わせることで、メンテナンス性と再利用性の高いテンプレートが構築できます。特定のキャンペーン記事にだけバナーを表示したいなど、用途に応じて活用してみてください。