WordPressWordPressは、いわゆるブログのようにトップページに記事の一覧が並ぶという構成だけでなく、トップページは静的ページ、ブログは別のURL以下で展開、というような、一般的な企業サイトのような構成にすることも可能です。フロントページの表示」から行います。今回後者の構成でサイトを制作していたのですが、ブログ(投稿ページ)に指定したページにて「query_posts()が効かない」問題が発生してしまいました。その際の設定は下記の通り。?>問題点query_posts()でクエリが上書きされない。テンプレート(blog.php)自体が反映されていない(index.phpが適用されている)調査した結果、2つの点に注意しなければいけないことがわかりました。Codexで該当のページを確認。投稿を表示するページ名をドロップダウンボックスから選びます。ここでページを選ばないと、サイトのナビゲーションメニュー(ページ一覧)にブログページへのリンクが表示されないため、カテゴリーやカレンダー、アーカイブリンクなどといった他のナビゲーション経由でしか投稿にたどり着けなくなります。home.php)が使われます。選択したページがパスワードで保護されていても、投稿ページを表示するとき訪問者にパスワードは求めません。home.php)が使われます。」!どおりでblog.phpが効かないはずだ、「投稿ページ」で指定したページのテンプレートや本文は無視され、タイトルとスラッグだけが利用されるようです。);」と通常のクエリに新しいクエリを追記するような記述をしていたことが原因でした。「1.「投稿ページ」に指定するページにはテンプレートを使わない」に従い、blog.phpをそのままhome.phpに変更。これで大丈夫かと思ったのですが、home.phpは認識するものの、query_posts()は以前有効にならないまま。そこで、さらに下記のように変更。‘/index.php’);としていた部分を、index.phpに記述していたコードと差し替えてみました。?>ですが、状況に変化なし...。?>すると、query_posts()がきちんと適用されました。詳しいことは良くわかりませんが、get_header()の中では特にクエリをリセットするような処理をしていないので、もし影響があるとすればwp_head()くらいかなと。いうことで、query_posts()は、wp_head()より後、ループの直前で行ったほうが良さそうです。プラグインデベロッパー。多数のプロダクトをオープンソースで開発・公開しています。開発・販売しています。簡単にYouTubeの動画ギャラリーをWebページに掲載でき...この投稿へのコメントコメントはありません。コメントを残すコメントをキャンセルこの投稿へのトラックバックトラックバックはありません。プラグインデベロッパー。多数のプロダクトをオープンソースで開発・公開しています。開発・販売しています。