WordPressテーマ

WordPress子テーマで固定ページに最新記事を表示

ちょうど今他サイトの子テーマを編集しており、解決策が見つかったので書いておきます。使っている子テーマはBuddyPress標準テーマの子テーマですが、この方法は全ての子テーマに当てはまります。

まず固定ページにトップページと同じようにブログの最新記事一覧を表示する方法があります。
参照元: http://d.hatena.ne.jp/minorio/20080813/1218626384

<?php
/*
Template Name: ブログトップ
*/
?>

<?php query_posts('cat=-0'); //すべてのブログ記事を取得
load_template( TEMPLATEPATH . '/index.php'); //indexを読み込む
?>

ただしload_templateだと親テーマのファイルしか読み込んでくれません。全てのテーマ変更は子テーマ内で行っているので、ここでは子テーマにあるindex.phpを読み込みたいと思います。そこで検索、見事Codexにありました。子テーマのテンプレートを利用するように改変したサンプルがこれ。

<?php query_posts('cat=-0'); //すべてのブログ記事を取得
 require_once( get_stylesheet_directory(). '/index.php'); //indexを読み込む
 ?>

これで完成!と思いきやページナビゲーションが機能しません。2ページ、3ページ目へ進んでも常に最新の投稿10件が表示されてしまいました。そこで再度検索して公式フォーラムに回答発見!こんなにすぐ見つかったのはラッキーだったと思います。この結果を踏まえて改変した完成版がこちら。

<?php
 $paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
 query_posts('showposts=10&paged='.$paged);
 require_once( get_stylesheet_directory(). '/index.php' );
?>

各ページに記事を10件ずつ表示し、ページナビゲーションも機能しています。(ナビゲーションの操作性向上にはWP-PageNaviを利用しています。)

一ヶ月後には多分忘れているので、共有メモとして投稿しておきます・・・(笑)

コメント投稿欄