WP 固定ページに特定カテゴリーの最新投稿記事を掲載する〜

外部サイトで「当該サイトの特定カテゴリーの最新投稿記事」を取得表示させたりリンクさせる場合、単純に当該記事のリンク先サイトURLを渡せば済むワケにはいかないので、専用固定ページに「特定カテゴリーの最新投稿記事」を表示させる仕組みを作っておかないといけません。

あれこれ試作するよりWEB検索してみるとまさに打って付けの回答があったので参考にさせていただきました。

  1. 「当該サイトの特定カテゴリーの最新投稿記事」を表示させる専用の固定ページを新規作成し、専用固定ページにスラッグ「blogtop」を設定しておく。
    ※外部サイトからは「http:/XXXX.com/blogtop」でアクセスしてもらう。
     
  2. 当該サイトのSingle.phpをコピーし、専用固定ページに表示させるための「page-blogtop.php」とする。
     
  3. 「page-blogtop.php」の表示出力部分を下記参考に編集する。
    ※詳細は参考サイトを参照

    <?php
    $wp_query = new WP_Query();
    $args = array(
    'post_type' => 'post',
    'post_status' => 'publish',
    'category__in' => 2,
    'posts_per_page' => 4,
    'order' => 'DESC'
    );
    $wp_query->query($args);
    if($wp_query->have_posts()){
    ?>
    <?php
    while (have_posts()) {
    the_post();
    ?>

    <!-- 出力部分 -->
    <p><a href="<?php echo get_permalink(); ?>">
    <?php the_title(); ?></a><br>
    <?php the_excerpt(); ?></p>
    <!-- 出力部分 -->

    <?php
    }
    wp_reset_query();
    }
    ?>

簡単な自前テーマだと出力部分をテーマ用に置き換えてやれば済みますが、最近の高級テーマだと多重入れ子構造で出力部分を別途のphp書類で定義されていたりします。そんな場合は出力部分を定義しているphp書類側を編集する必要があります。

page-blogtop.php の書き換え

page-blogtop.php(元のsingle.php)の表示出力部分の仕様は、content-single.phpに書かれており、このままでは旨く機能しません。

  1. page-blogtop.phpの表示出力部分の 'content', 'single' を'content', 'blogtop' に書き換える。
  2. content-single.phpをコピーして、content-blogtop.phpとしたうえで表示出力仕様部分を編集します。

content-blogtop.php

「page-blogtop.php」「content-blogtop.php」をテーマフォルダに入れてやるとhttp:/XXXX.com/blogtop で指定カテゴリの最新投稿記事を表示するようになりました。