将来的には、カスタム投稿タイプの記事一覧「archive-news.php」というのを作って表示させたいですが、これだと「home-news.php」になってしまいます。
これはおかしいと思うので、ご教示いただけたらうれしいです。
こんにちは、
投稿ページを「ブログ」にしました。
テンプレート階層でのテンプレートの選択の詳細は、wp-includes/template-loader.phpを確認していただくといいと思いますが、
投稿ページでブログを選択した場合、
is_home()はTRUE is_front_pageはFALSEになるため、
通常であれば、index.php が選択されます。この時にテンプレートを決める、get_home_template()は、home.php か index.phpの2択をリターンしますので、home.phpが存在すれば、home.phpが適用されるという筋書きになります。
投稿ページでブログを選択した場合は、is_archive()ではなく、is_home()でテンプレートが決まりますので、archive.php にはなりません。
公式ディレクトリ登録を目指しています。
公式ディレクトリにあるテーマは、home.phpを使用していても、それを理由に審査をパスできないという事はないと思います。
しかし、固定ページテンプレートを選択しない状態が基本なので、何らかのスクリプトで 最初から固定ページテンプレートのデモコンテンツを配置したり、ブログ用のテンプレートを設定してしまう行為は、問題になるのではないかと思います。
なので、カスタム投稿タイプの記事一覧の表示は、カスタム投稿タイプの一覧で、archive-news.php を作らなくても、archive.phpや、index.phpで表示することが出来るのではないかと思います(未テスト)
公式テーマディレクトリでは、カスタム投稿タイプの設定はルール上できないので、作りたい場合は、テーマ用プラグインを作るなどして対応する必要があると思います。
余談
WordPress4.7になると、現在ページの編集画面から選択できる 固定ページテンプレートが、通常の投稿や カスタム投稿で利用できるようになりそうです。
http://tenman.info/labo/snip/archives/8984
テンプレート階層以外での対応方法も念頭に置いておくと、いいのではないかと思います。
こんにちは お世話になります
ご回答ありがとうございます。
理解はできました。
固定ページで「トップ」「ブログ」というページを2つ作って、
ダッシュボードの「設定」>「表示画面」でフロントページの表示を「固定ページ」にし、
フロントページを「トップ」、投稿ページを「ブログ」にして使っている人は多いと思のですが、
「home.php」でブログ投稿の記事一覧ページを作らないですよね。
やはり「index.php」でブログのブログ投稿の記事一覧ページをつくるのが一般的でしょうか?
「chocolat」のソースを拝見させていただいたのですが、そうなっている感じでした。
ありがとうございます。
「home.php」でブログ投稿の記事一覧ページを作らないですよね。
home.php は、テンプレート階層の命名規則で動作するテンプレートですが、
固定ページの、テンプレートはテンプレート階層に依存しないテンプレートですよね。
home.phpや、front-page.php等テンプレート階層のファイル命名規則に従わなくても、自由にテンプレートを適用できるので、わけて考えるといいと思います。
「index.php」でブログのブログ投稿の記事一覧ページをつくるのが一般的でしょうか?
index.phpは、他のテンプレートが適用できない場合に最終的に使われるテンプレートなので、アーカイブのようなループページでも、個別投稿やページでも使用される可能性がありますので、個別投稿の前後リンクや、ループページ用のページングリンク等一通りの機能を持っている必要があります。
なので、「ブログ一覧が表示できればいい」という考え方だと、何かしらの個別投稿などのページで前後リンクがないといった事が発生する可能性はあります。
また、「ブログ一覧用の特別な表示」等がある場合は、他のアーカイブを表示した時に、無用なものが追加されているといった可能性もあります。
結局ケースバイケースです。
index.phpを使っても条件分岐の方法を理解していれば、何かブログ一覧に特別な表示をすることが出来ます。
http://tenman.info/labo/snip/archives/7288
ありがとうございます。
他の先輩方の公式テーマを拝見させていただいたら、
habakiriはhome.phpでブログ一覧をやっているようで、
chocolatはindex.phpでブログ一覧をやっているようでした。
私もこれでいきます
大変勉強になりました