【WordPress】投稿ページや固定ページで特定のページだけ表示内容を変える方法

投稿ページや固定ページで特定のページのみ画像や文章を出したい時ってありますよね。
そんな時に使える便利なWordPressの関数と設置例をご紹介します。

広告

投稿ページの場合

投稿ページでの特定のページの判定はis_single関数で行います。
参考:関数リファレンス/is single – WordPress Codex 日本語版

投稿ページは「single.php」ファイルに出力内容が記載されているので 「single.php」ファイル に is_single関数を使った条件分岐を記述します。

記述する内容は下記のようなコードになります。

<?php if(is_single( $post )): ?>
  <!-- 条件に当てはまる場合 -->
<?php else: ?>
  <!-- 条件に当てはまらない場合 -->
<?php endif; ?>

is_single関数のパラメータとして指定している’ $post ‘の箇所には、投稿IDや投稿タイトルが指定できますが、投稿タイトルは変更することがあるので投稿IDを指定しましょう。

私が使っているテーマであれば、下記のような感じになります。

<?php get_header(); ?>
  <section id="primary" class="content-single content-area">
    <main id="main" class="site-main" role="main">
      <?php if(is_single( 210 )): ?>
        <!-- postIDが210の場合のみ処理を実行 -->
        <p>投稿IDが210です</p>
      <?php else: ?>
        <!-- 210以外はなにもしない -->
      <?php endif; ?>
      <?php while ( have_posts() ) : the_post();
      get_template_part( 'template-parts/content', 'single' );
      maxwell_related_posts();
      comments_template();
    endwhile; ?>
    </main><!-- #main -->
  </section><!-- #primary -->
  <?php get_sidebar(); ?>
<?php get_footer(); ?>

補足ですが、投稿IDはWordPressの記事編集画面のURLに’post=XXX’の形式で記載されていますので、そちらを参照して投稿IDを確認してください。

投稿ページの投稿IDの表記場所

固定ページの場合

固定ページでの特定のページの判定はis_page関数で行います。
参考:関数リファレンス/is page – WordPress Codex 日本語版

固定ページは「page.php」ファイルに出力内容が記載されているので 「page.php」ファイルにis_page関数を使った条件分岐を記述します。

記述する内容は下記のようなコードになります。

<?php if(is_page( $post )): ?>
  <!-- 条件に当てはまる場合 -->
<?php else: ?>
  <!-- 条件に当てはまらない場合 -->
<?php endif; ?>

is_single関数と同様ですが、 is_page関数のパラメータとして指定している’ $post ‘の箇所には、投稿IDや投稿タイトルが指定できますが、投稿タイトルは変更することがあるので投稿IDを指定しましょう。

私が使っているテーマであれば、下記のような感じになります。

<?php get_header(); ?>
  <section id="primary" class="content-single content-area">
    <main id="main" class="site-main" role="main">
    <?php if(is_page( 7 )): ?>
      <!-- postIDが7の場合のみ処理を実行 -->
      <p>投稿IDが7です</p>
    <?php else: ?>
      <!-- 7以外はなにもしない -->
    <?php endif; ?>
      <?php while ( have_posts() ) : the_post();
        get_template_part( 'template-parts/content', 'page' );
        comments_template();
      endwhile; ?>
    </main><!-- #main -->
  </section><!-- #primary -->
  <?php get_sidebar(); ?>
<?php get_footer(); ?>

投稿ページと同じですが、投稿IDはWordPressの記事編集画面のURLに’post=XXX’の形式で記載されていますので、そちらを参照して投稿IDを確認してください。

固定ページの投稿IDの表記場所

今回紹介した方法はどうしても普通では対処できない場合の「イレギュラーな方法」として使う方が良いです。
相当凝ったデザインのWebサイトでなければ、基本的な構成は同じはずなので、統一感を出すためにも多用は控えた方が良さそうです。

広告

コメントを残す

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