【WordPress】任意の記事にのみ共通パーツを表示する方法|条件分岐で柔軟にカスタマイズ

【WordPress】任意の記事にのみ共通パーツを表示する方法|条件分岐で柔軟にカスタマイズ WordPress

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-postnews-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()を組み合わせることで、メンテナンス性と再利用性の高いテンプレートが構築できます。特定のキャンペーン記事にだけバナーを表示したいなど、用途に応じて活用してみてください。