home.phpとindex.php

前回、既存のURLを維持するため、wordpress1つでさまざまな方法をとっていることを紹介したが、この時点ではサイトトップを表示するのにhome.phpを使用していた。

しかし、固定ページ+ブログを構築する際、困ったことが起こった。

表示設定で固定ページを選択し、サイトトップにページで作ったindexを指定、indexにはページテンプレートの記述をいれたhome.phpを指定してある。次にブログページにはURLを維持するため空で作ったblogページを親とするindexを指定。このindexにはブログ用のテンプレートを割り当てるか、自動でindex.phpが割り当てられる。と、考えていた。

しかし、現実にはどちらのページにもhome.phpが適用されてしまった。

サイトトップに自動でhome.phpが割り当てられるのは分かっていた。日本語Codexにもそう書かれてある。しかし、ブログトップにもhome.php->index.phpの順で割り当てられるとは思わなかった。しかも指定したページテンプレートは見事に無視される。
home.phpはループなしでがっつり作りこんでいるのでブログとしては役に立たない。これは困った。

そこで、home.phpを使用するのをやめた。サイトトップのindexには今まで作っていたhome.phpをリネームしてページテンプレートとして割り当てて、ブログトップにはブログ用に作成したページテンプレートを割り当てた。
すると、サイトトップには割り当てたページテンプレートが適用される。が、ブログトップはindex.phpが適用された。どうやら固定ページを指定した場合のブログトップに指定したページにはページテンプレートを適用できないようだ。もちろんhome.phpは削除している。

まあ、これでサイトトップとブログトップが無事表示できたわけなのでOKなのだが。
固定ページをサイトトップとして使いたい場合のhome.phpの使用には十分注意してもらいたい。

“home.phpとindex.php” への7件の返信

  1. はじめまして、こんにちは。WPフォーラムからお邪魔しましたkurosquareと申します。

    フロントページと投稿ページには、それぞれ別のページテンプレートを適用できたような気がしたのですが…2.9からでしたっけ。

    以前はhome.phpを使っていたのですが、内容の変更が面倒ということもあって、その後は固定ページ割り当てにしました。

  2. はじめまして、こんにちは。WPフォーラムからお邪魔しましたkurosquareと申します。

    フロントページと投稿ページには、それぞれ別のページテンプレートを適用できたような気がしたのですが…2.9からでしたっけ。

    以前はhome.phpを使っていたのですが、内容の変更が面倒ということもあって、その後は固定ページ割り当てにしました。

    #なお、こちらのサイトでコメントしたときにポップアップが表示されるのは仕様でしょうか?ちょっぴり驚きました。

  3. kurosquareさんこんにちわ。
    そういえば2.9では試してないですねぇ。
    私がこの記事を書いていたときはまだ2.8系でした。
    少なくともhome.phpがあると優先的に使用されてましたね。
    home.phpがあって、かつフロントページと投稿ページに違うページテンプレートを適用した場合でも、どちらにもhome.phpが使用されていました。
    index.phpの方が融通が利く感じがしましたね。

  4. #なお、こちらのサイトでコメントしたときにポップアップが表示されるのは仕様でしょうか?ちょっぴり驚きました。

    私も驚きました(゜Д゜)
    YurikoさんのところのNonce, Please!の効果だと思います。最近導入しましたので。スパムは0になりました、Akismetいらないくらい(笑)

  5. >YurikoさんのところのNonce, Please!の効果だと思います。

    Nonce!Pleaseプラグインは、wp-comments-post.phpを直接叩くスパムを排除するためのものですのでポップアップは出ません。
    おそらくquick-commentsプラグインがNonce!Pleaseに対応していないため、うまく動作していないような気がします。

  6. >おそらくquick-commentsプラグインがNonce!Pleaseに対応していないため、うまく動作していないような気がします。
    なるほど。をかもとさんに聞いてみたいな。バージョンアップしてくれるだろうか・・・
    なんかIEだとログインしててもコメントできないしw

コメントを残す

メールアドレスが公開されることはありません。