web-dev-qa-db-ja.com

ブログページの代わりにindex.phpテンプレートが使用されます

ホームページが静的で、ブログページが別のページになるようにWordPressを設定しようとしています。そこで、私は私のテーマの中に2つのページテンプレートを作成しました。それらをhome_templateおよびblog_templateと呼びましょう。

それから、2つのWordPressページを作成しました(Pages - > Add New)。最初のページはHome、で、home_template;を使用しています。そして2番目はBlogと呼ばれ、blog_templateを使用しています。

それから、Settings - > Readingの設定に行き、Front Page A Static Pageを選びました。それに続く2つのドロップダウンで、HomeFront Pageに選択し、ブログ投稿ページ

それから私は外観 - >メニューに行き、メニュー項目としてブログページを追加しました。

さて、私が自分のサイトを見に行くと、ホームページはNice and dandyです。ただし、ブログページのメニュー項目をクリックすると、ブログページはコンテンツの表示にindex.phpを使用していますが、コンテンツの表示にはblog_templateページを使用していません。 .

Blog_templateページが使用されていることを確認する方法を教えてください。助けてくれてありがとう。

1
Greeso

あるページを投稿用のページにすると、それは従来の意味での「ページ」ではなくなります。ホームページの表示については テンプレート階層 を参照してください - 最も早い修正はあなたのブログテンプレートの名前をhome.phpに変更することです、そしてWordPressはindex.phpの前にそれをロードします。

3
Milo

テーマファイルにarchive.phpファイルがありますか。これは、投稿ページを表示するときにレンダリングされる最初のファイルです。そこにない場合は、デフォルトでindex.phpファイルを使用します。アーカイブページがない場合はblog_templateファイルの名前を 'archive.php'に変更することをお勧めします。もっと良いのは 'archive-post.php'に変更して正しくレンダリングされるかどうかを確認することです。

あなたのblog_templateファイルであなたがそれをあなたが望んでいる方法でフォーマットしてブログ記事を引っ張って来るようにそれをコード化しているならば、そして私は設定でそれはポストページに何も設定しないと言うでしょう。そのように、あなたがあなたの「ブログ」ページに行くとき、システムはビューをレンダリングするためにblog_templateを使います。

このルートに進むと、テンプレートファイルはすべての投稿に対してクエリを実行する必要があることになります。これは、ページが読み込まれるときにグローバルオブジェクトクエリにはそのページしかないためです。

0