Hatena::ブログ(Diary)

minorio のプログラミング・メモ

RSS2

2008-08-13

[][] WordPressトップページを静的ページにして、サブディレクトリブログを配置する方法 20:19

基本的な情報は、Pages - WordPress Codex 日本語版に書いてあるんだけど、なんだかややこしいので整理しておこう。

WordPress のバージョンは 2.6 として書いています。それ以前のバージョンではプラグインなどを導入しないと使えない機能があるかも知れません。

目標とするサイト構造

今回、目標とするサイト構造は、http://example.com/ に静的なトップページがあり、http://example.com/blog/アクセスするとブログトップページが表示されるというもの。http://example.com/ で表示されるトップページには http://example.com/blog/ へのリンクが含まれる。またブログの記事は全て http://example.com/blog/ 以下に配置される。

ページテンプレートを2つ作成する

以下の2つのページテンプレートを作成する必要がある。いずれも使用中のテーマの中に保存する。

sitetop.php

<?php
/*
Template Name: サイトトップ
*/
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" dir="ltr" lang="ja">

<head profile="http://gmpg.org/xfn/11">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>サイト名</title>
</head>

<body>
<h1>サイトのトップページ</h1>
<p><a href="<?php bloginfo('url'); ?>/blog">ブログへのリンク</a></p>
</body>
</html>

blog.php

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

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

ページの作成

管理画面にログインし、新規ページを作成する。

表示設定の変更

管理画面の「オプション>表示設定」をクリックし、「トップページの表示」から「固定ページ」を選択して、以下のように設定する。

パーマリンク設定の変更

管理画面の「オプションパーマリンク設定」をクリックし、「カスタム構造」のテキストフィールドに以下のように記入する。

/blog/post/%post_id%

ただし、この部分は変更しても構わない。

/blog/%year%/%monthnum%/%postname%/

など、/blog/ で始まる構造であれば問題ない。

tshtsh 2009/01/17 11:31 ありがとうございます。ブログとページを独立して表示する方法をずっと探していて、ものすごく悩んでいました。
こんなに簡単に、しかもこんなにスマートに実現するとは思ってもいなかった。
ページ毎にテンプレートを指定できる事が分かったのも収穫でした。

あまりの興奮に、カキコしました。でわ

hagoromogumihagoromogumi 2012/01/07 16:33 ありがとうございます。
ぎりぎりのところまで自力で出来ましたがどうもうまくいかずに困っておりました。
特にテンプレート名はhome.phpにしてはいけないのですね。
頭の整理ができました。
助かりました!
わたしもtshさん同様、興奮のあまりカキコしました。