かわたま.net

Enjoy Creative! かわたまのwebメモ

【wordpress】固定ページに特定カテゴリーの投稿一覧をプラグインなしで表示させる方法

2014 July 31

Tag:

wordpressの固定ページに特定のカテゴリ一覧を表示するには

・プラグインで固定ページ内にphpが使えるようにする
・phpファイルを作成して固定ページ内にインクルードさせる

などの方法があります。
今回はプラグインなしで実装できる「phpファイルを作成して固定ページ内にインクルードさせる」方法の記述例です。

投稿・固定ページ内にPHPファイルをインクルードさせる方法は、「【wordpress】投稿・固定ページ内にPHPファイルをインクルード(挿入/実行)させる」の記事でも書きましたが、今回はその応用編です☆

1,functions.phpに追記

記事内/固定ページ内にphpファイル(任意のファイル)を読み込ませるには、記事内にショートコードを書きます。
まずはそのショートコードを有効にするために、テーマ内(hoge.net/wp-content/themes/piyo/)のfunctions.phpに以下を追記。

<?php
 
//ここから
function Include_my_php($params = array()) {
    extract(shortcode_atts(array(
        'file' => 'default'
    ), $params));
    ob_start();
    include(get_theme_root() . '/' . get_template() . "/$file.php");
    return ob_get_clean();
}
 
add_shortcode('myphp', 'Include_my_php');
//ここまで
 
?>

phpファイルを作成

//例えば、カテゴリー:news の記事一覧を取得する場合
//news.php に下記を記述(ファイル名は任意の名前)
<div>
  <?php $blog_posts = query_posts('category_name=news&showposts=5');
  foreach($blog_posts as $post): ?>
  <p><?php echo get_post_time('Y.m.d'); ?></p>
  <p><a href="<?php echo get_permalink($post->ID); ?>"><?php echo $post->post_title; ?></a></p>
  <?php endforeach; ?>
</div>

・4行目の category_name=〇〇 にカテゴリースラッグを,showposts=〇 には表示させる件数を入れます。
・6行目の日付は、表示させたい書式で入れます。
・7行目は、記事タイトルを表示し、その記事へリンクさせる記述です。
サイトのデザインによってhtmlを調整してください。

固定ページ内にショートコードを記述

phpファイルをテンプレートディレクトリにアップロードできたら、一覧を表示したいページの記事内にショートコードを記述します。

読み込ませたいphpファイル(今回は news.php)を作成し、同ディレクトリ(例:hoge.net/wp-content/themes/piyo/)にアップロード。
固定ページ内の任意の場所に以下のショートコードを記述。(ファイル名が news.php の場合)

[myphp file='news']

以上で固定ページ内で特定のカテゴリー記事一覧を表示させることができます☆