[wordpress] トップページを「固定ページ」で「最新記事」も見せる

wordpressで、「フロントページ」を「固定ページ」にして、「最新記事」も作る方法です。

wordpress3.0.1が対象です。

フロントページを「固定ページ」にして最新記事?

wordpressを使って、普通のホームページっぽいの作ったりしません?

で、グローバルナビに

「HOME」「なんたら」「かんたら」「ブログ」

なんて並べちゃったりって・・・ありません?

とりあえず、ホームやなんたらかんたらは、「ページ」として作りますよね。

で、管理画面の「設定」の「表示設定」で、「固定ページ」にして、「フロントページ」をトップページに割り当てますよね。

で、「ブログ」・・・

どうしましょ。

何がやりたいかって、ドメイン直下は「ページ」として作ったトップページになります。

で、「ブログ」をクリックすると、ブログの最新記事の一覧が出て欲しいわけです。

ってか、「表示設定」でフロントページを「最新の投稿」にして、ドメイン直下にアクセスしたのと同じようになって欲しいです。

「フロントページ 固定ページ 最新記事」でぐぐるぐぐる

で、どうせググれば出るかな~と思ってたんだけど、無いね。

探し方が良いかどうかは別として

自分で作ったほうが早い <> ググレば早い

の天秤が左に動いたので、作ってみました。

最新記事のためのテンプレートファイルを作る

あ、テーマですけど、wordpress3.0.1のデフォルトテーマ「twentyten」を基に書きますです。

で、とりあえず「index.php」をコピーして、リネームします。
なんでもいいんだけど、とりあえず「page-blog.php」ってしてみました。

で、「page-blog.php」をちょちょいと編集します。

<?php
/**
 * Template Name: blog
 *
 * This is the most generic template file in a WordPress theme
 * and one of the two required files for a theme (the other being style.css).
 * It is used to display a page when nothing more specific matches a query.
 * E.g., it puts together the home page when no home.php file exists.
 * Learn more: http://codex.wordpress.org/Template_Hierarchy
 *
 * @package WordPress
 * @subpackage Twenty_Ten
 * @since Twenty Ten 1.0
 */

get_header(); ?>

    <div id="container">
      <div id="content" role="main">
      <?php
        query_posts('numberposts=10&offset=0&orderby=post_date&order=DESC');
        $wp_query->is_archive = true;
        get_template_part( 'loop', 'index' );
        wp_reset_query();
      ?>
      </div><!-- #content -->
    </div><!-- #container -->

<?php get_sidebar(); ?>
<?php get_footer(); ?>

これでOK。

書き直した箇所ですが・・・

3行目

 * Template Name: blog

として、「blog」と言う名前で、「ページ」のテンプレートとして出てくるようにします。

んで、20~25行目

      <?php
        query_posts('numberposts=10&offset=0&orderby=post_date&order=DESC');
        $wp_query->is_archive = true;
        get_template_part( 'loop', 'index' );
        wp_reset_query();
      ?>

こんな感じに書き足します。

で、アップロード。

で、管理画面から「ページ」を新規作成しましょ。
タイトルは、一応>title<タグとかに設定されるのでそれなりに書きます。
本文は使わないのでそのままで、保存(公開)しちゃいましょ。

え?これ以上何かしたかったですか?
もう終わりですよ。

で、さっき作ったページにアクセスすると、期待しているものが出てくるので、そのURLを、グローバルナビの<a>タグに設定しちゃえばokok。

でした。

あ、で、結局のところ、これがベストアンサーなのかな。
それは知らない。

広告

4 件のコメント

  • こんにちは、初めまして。お忙しいところ失礼します。
    [wordpress] トップページを「固定ページ」で「最新記事」も見せる
    を拝見して、是非やってみたいと思い、コピペさせていただき試してみました。
    すると、最新記事が見事に表示されました!
    しかし、← Older posts をクリックしても、page/2  には移動するのですが、その最新の記事がまた表示されてしまいました。過去の記事へ遡っていけないようです。
    たいへんお忙しいところ申し訳ございませんが、どこをどう直したらいいのでしょうか、もし簡単に判るようでしたら、お手すきの折りにお教えいただけますとたいへんありがたいです。
    当然失礼いたしました、どうもありがとうございます。

  • $paged = (get_query_var(‘paged’)) ? get_query_var(‘paged’) : 1;
    query_posts(‘&posts_per_page=5&paged=’ . $paged . ‘&orderby=post_date&order=DESC’);

    こちらのほうが良いかもしれませんね。

  • すごい、素晴らしい!(笑)
    おっしゃる通り、固定ページをフロント・ページにしても、blog式に、時系列で全てのポストを一覧できるリンクのオプションも残したい、という需要はふつうに考えたらすごくありそうなので、
    (>ってか、「表示設定」でフロントページを「最新の投稿」にして、ドメイン直下にアクセスしたのと同じようになって欲しいです。
    …まさにそう考えたんですよ!)
    すごく有益なスクリプトだと思います。ほんとうにありがとうございました。お陰さまで、大きく1歩自分の作りたいサイトに近づくことができた、と思います。
    また何かうかがうかもしれませんが、どうぞよろしくお願いいたします。
    ありがとうございました!
    (p.s. 最初ふつうにコピペしたら、シングル・クォーテイションが文字化けしてることに気づかずに、syntax エラーが出てびっくりしました(笑)そんなレヴェルですので、とても感動しました!)

  • お世話になっております。ふと気がついたのですが、WordPress 3.0.5にはこの機能、ちゃんとついていました(笑)うーん、それはそうですよね、固定ページをフロント・ページにしても、ポストが時系列で一覧できますし、ブログ部分は残したいのがふつうですものね。。。失礼いたしました。まだ判らないことばかりで。。。というか、たぶん最後まで、判るようにはならないような気が。。。(笑)ありがとうございました。