【wordpress】固定ページに特定カテゴリーの投稿一覧をプラグインなしで表示させる方法
2014 July 31
wordpressの固定ページに特定のカテゴリ一覧を表示するには
・プラグインで固定ページ内にphpが使えるようにする
・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']
以上で固定ページ内で特定のカテゴリー記事一覧を表示させることができます☆