【WordPress】特定カテゴリーや固定ページの内容を別の固定ページ内に表示する3つの方法

WordPressでサイトを制作・運用していると、「新着記事一覧をトップページ(固定ページ)に埋め込みたい」「特定の固定ページ内に、指定したカテゴリーの記事だけを表示させたい」といった場面がよくあります。

この記事では、ノーコードで実装できる標準機能から、プラグインを使う方法、テーマをカスタマイズするPHPコードまで、固定ページ内に別の記事やコンテンツを表示する3つの方法を分かりやすく解説します。

方法1:【標準機能】「クエリループ」ブロックを使う(プラグイン不要)

WordPressの標準エディター(ブロックエディター)には、標準で記事一覧を表示する強力な機能が備わっています。プラグインを増やしたくない場合や、最新のGutenbergエディターをお使いの方におすすめです。

設定手順

  1. 表示させたい固定ページの編集画面を開きます。
  2. ブロック追加ボタン(+)を押し、「クエリループ」 ブロックを検索して挿入します。
  3. 一覧のレイアウト(グリッド表示、リスト表示など)を選択します。
  4. 右側のブロック設定サイドバーを開き、「タクソノミー」>「カテゴリー」 から表示したいカテゴリーを指定します。
  5. 表示件数や並び順(新着順・古い順)を調整してページを更新します。

ポイント: プラグインを一切導入せずに実装できるため、サイトの動作速度に影響を与えにくいのがメリットです。

方法2:【プラグイン】ショートコードで手軽に挿入する

レイアウトを柔軟に変更したい場合や、ショートコードを使ってワンタッチで埋め込みたい場合はプラグインの活用が便利です。

1. 特定カテゴリーの記事一覧を表示したい場合(Display Posts)

プラグイン 「Display Posts」 を使用すると、指定したカテゴリーの記事一覧をショートコードで簡単に呼び出せます。

  1. 管理画面の「プラグイン」>「新規追加」から Display Posts をインストール・有効化します。
  2. 表示したい固定ページ内に、以下のショートコードを貼り付けます。

Plaintext

[display-posts category="news" posts_per_page="5"]

(※ category="news" の部分を対象カテゴリーのスラッグに変更してください)

画像や抜粋文章も含めて表示したい場合は、パラメータを追加します。

Plaintext

[display-posts category="news" image_size="thumbnail" include_excerpt="true" posts_per_page="3"]

2. 特定の固定ページそのものを埋め込みたい場合(Insert Pages)

「固定ページの中に、別の固定ページの本文を丸ごと表示したい」という場合は、プラグイン 「Insert Pages」 が適しています。

Plaintext

[insert page='page-slug' display='content']

(※ page-slug の部分を埋め込みたい固定ページのスラッグに変更します)

方法3:【テーマカスタマイズ】PHPテンプレートに直接記述する

テーマの開発やカスタマイズを行っている場合は、テンプレートファイル(page.php など)に WP_Query を用いたコードを直接記述します。

サンプルコード(PHP)

表示したい場所に以下のコードを挿入します。

PHP

<?php
// 特定カテゴリー(例: スラッグが 'news')の最新5件を取得
$args = array(
    'category_name'  => 'news',
    'posts_per_page' => 5,
);
$the_query = new WP_Query( $args );

if ( $the_query->have_posts() ) :
    echo '<ul class="custom-post-list">';
    while ( $the_query->have_posts() ) : $the_query->the_post();
        ?>
        <li>
            <a href="<?php the_permalink(); ?>">
                <?php the_title(); ?>
            </a>
        </li>
        <?php
    endwhile;
    echo '</ul>';
    wp_reset_postdata(); // 投稿データのサブリセット
else :
    echo '<p>該当する記事が見つかりませんでした。</p>';
endif;
?>

まとめ

固定ページ内に特定のコンテンツを表示させる方法は、運用体制やカスタマイズの自由度に合わせて選ぶのがベストです。

  • 手軽に標準機能で実装したい: 方法1(クエリループブロック)
  • ショートコードで手軽に管理したい: 方法2(プラグイン)
  • デザインや構造を細かく制御したい: 方法3(PHPカスタマイズ)

自社のサイト構造に最適な方法を選んで、見やすく回遊性の高いWebサイトを目指しましょう!