twentyseventeenのfront-page.phpが表示されない
-
お世話になります。
現在、xampp環境でwordpressサイトを構築しています。xamppの環境はphpのVersion 5.6.8で最新のwpには推奨はされていませんがこの環境で構築しています。wpのテーマは「twentyseventeen」の子テーマです。
そこで質問ですが、「twentyseventeen」を使用していますとfront-page.phpが基本ファイルとして存在していますが、優先して表示されないで困っております。
これはfront-page.phpの使い方の問題でしょうか?もしくはphpのバージョンが低いために動作していないのでしょうか?ちなみにindex.phpをリネームしてfront-page.phpのみにしてもトップページには投稿記事が表示されてしまいます。
初心者的な質問で申し訳ないのですが、ご教授頂けませんでしょうか。よろしくお願いします。
-
こんにちは、
twentyseventeenは、テンプレート階層に手を加えているので 多分そのような事が起きているのだと思います。
カスタマイズ 固定ページテンプレートで 固定ページを選択して、その固定ページを使うか、または、
この状態で チャイルドテーマにfront-page.phpを追加するとたぶん動作すると思います。
functions.php
/** * Use front-page.php when Front page displays is set to a static page. * * @since Twenty Seventeen 1.0 * * @param string $template front-page.php. * * @return string The template to be used: blank if is_home() is true (defaults to index.php), else $template. */ function twentyseventeen_front_page_template( $template ) { return is_home() ? '' : $template; } add_filter( 'frontpage_template', 'twentyseventeen_front_page_template' );
が、原因部分
phpのVersion 5.6.8 で問題なく動作すると思います。(テーマとかプラグインがPHP7のものを使っていなければ)
nobitaさん、
ご返信ありがとうございます。
>>カスタマイズ 固定ページテンプレートで 固定ページを選択して、その固定ページを使うか、または、
>>この状態で チャイルドテーマにfront-page.phpを追加するとたぶん動作すると思います。設定→表示設定から固定ページな選択なら当然静的ページで表示されます。
チャイルドテーマにfront-page.phpは追加していますが動作しません。ちなみに親テーマを参照しているfront-page.phpも動作していません。
また明日にでも調査していきます。
本日はここまでで帰宅します。また明日にでも調査していきます。
本日はここまでで帰宅します。お仕事でしたか、お疲れ様です
こちらでは、動きますが なぜでしょうね
設定→表示設定から固定ページな選択 することで、is_home()はfalseを返すので
http://tenman.info/labo/snip/archives/7288
チャイルドテーマ/front-page.php
内容
俺フロントページ<?php
チャイルドテーマでも、front-page.phpを追加する必要なく動作しています。
チャイルドテーマのディレクトリには、functions.phpとstyle.cssの2つのファイルだけです。フロントページ 第1〜4の各セクションに表示したい固定ページを設定できていますか?
Twenty Seventeen テーマを別途インストールした場合は、設定が必要だと思いますが、WordPress 4.7.1 を新規インストールすると、Twenty Seventeen をそのまま使えるように、固定ページがサンプル・ページの他に、「お問い合わせ」、「ブログ」、「ホームページ」、「ホームページセクション」、「会社概要」の5つが既に用意され、メディアも設定済みになっています。そのため、内容を書き換えるだけで短時間でサイトの体裁が整います。
もし、固定ページにアイキャッチが設定されていない。
かつ、固定ページが、投稿記事一覧(ブログ)ページだけだったとしたら、フロントページには投稿記事だけの表示となることの想像は容易です。nobita様、ご返信頂きましてありがとうございます。
こちらからの返信が遅くなり失礼しました。>設定→表示設定から固定ページな選択 することで、is_home()はfalseを返す
はい、私もその通り「設定→表示設定から固定ページ」を選択するとfront-pageは動作しますが、「設定→表示設定から 最新の投稿」を選択してもfront-pageが動作するはずが、しない事に疑問点が残っています。
その他、子テーマにしても最初から固定ページが設定されている事に気付いておりませんでした(カスタマイズから設定)。
こんな素晴らしい機能があったことに感謝と感動です。すみません、少々上記の疑問点が残りますが、こういう仕様なのでしょうか?
Du bist der Lenz様、ご返信頂きまして、誠にありがとうございました。
それとこちらからの返信が遅くなり失礼しました。仰るとおり「フロントページ 第1〜4の各セクションに表示したい固定ページを設定できていますか?」が出来ておりませんでした。
よく設定方法を確認できていなく、失礼しました。ですが、私的にもう一つ先ほど返信しております内容の疑問点があります。
<「設定→表示設定から固定ページ」を選択するとfront-pageは動作しますが、「設定→表示設定から 最新の投稿」を選択してもfront-pageが動作するはずがしない
これがnobitaさんが前の投稿で仰るとおり「twentyseventeenは、テンプレート階層に手を加えているので 多分そのような事が起きているのだと思います。」が回答であれば納得はいきますが、皆様の動作は同じでしょうか?
テーマ設計者のフロントページの設定までの、道筋の違いではないか。
こつこつ増えていたのが、全幅幅の固定ページ用テンプレートを用意するだけで、ユーザーがフロントページを構築していくタイプ。そうしたテーマの設計とは違う視点から、レスポンシブウェブデザイン、ワンページランディングページが一般的になってきて、固定ページでフロントページ用のテンプレートを選択するスタイルの一方で、「設定>表示設定>固定ページ」で「フロントページ」に選んだページには、フロントデザインのテンプレートが、「投稿ページ」に選んだページには、ブログデザインのテンプレートが割り当てられるように設計されているタイプ。
そういう選択も必要ないように、「最新の投稿」でもフロントページにそれなりのレイアウトがデザインされたテーマも以前からあります。
本腰入れてWordPressでサイト運用を進めているユーザーには、デモサイトや、紹介ページでのフロントページのデザインでテーマの利用を選択することはないと思いますが、フロントページのデザインのビジネスもある。
Twenty Seventeen ではフロントページから、フロントページに配置するパネルテンプレートを読みこむようになっているようですね。それが「個性的なテンプレート階層」になっているということなのでしょう。
前記(二日前に)した通り、WordPressを新規で作成すると、Twenty Seventeen のテーマで「お問い合わせ」、「ブログ」、「ホームページ」、「ホームページセクション」、「会社概要」のページサンプルが既にセットアップされている。ビジネスサイトに必要なページがあるのでグーグルなどの検索エンジンにも十分な情報が提供できる。新しいユーザーにとって、本文を書き直すだけで良いのですから、ビジネスサイト構成が容易になったと思えます。
本文を書き換えるだけでビジネスサイトが作れないか、という希望がかなったと言えそうです。動画ヘッダーで商品紹介や、ビジネスの様子を紹介しやすくなり、今後動画ヘッダーのあるサイトが増えそうです。
動画ヘッダーを持ったテーマもいろいろとありましたが、 Twenty Seventeen のたたき台になったんだろうなと思えるテーマも3サイトほどでカスタマイズ加えて使っていたので、それをすっきり Twenty Seventeen に変えてしまう準備中です。Du bist der Lenz様、詳しいご説明ありがとうございました。
>Twenty Seventeen ではフロントページから、フロントページに配置するパネルテンプレートを読みこむようになっているようですね。それが「個性的なテンプレート階層」になっているということなのでしょう。
上記の説明で「設定>表示設定>固定ページ」で設定すると「個性的なテンプレート階層」になる?ようにも解釈できるかと思いました。
ビジネスというところは干渉しませんが、今後Twenty Seventeenを使用してサイト構築する際はfront-page.phpを使う際は「設定>表示設定>固定ページ」、index.phpを使用する際は「設定>表示設定> 最新の投稿」と切り分けて使います。ありがとうございました。
活用例に把握しやすいから「ビジネス」タイプで基本値となっているのでしょうから、そこは各自の用途に合わせて読み替えればよいでしょう。
「最新の投稿」をフロント・ページするのも個々の判断次第です。WordPress 4.7 からは「開発者をより一層ハッピーに 😊
投稿タイプテンプレート
すべての投稿タイプに固定ページテンプレート機能を広げることで、テーマ開発者は WordPress のテーマ階層により一層柔軟に対応できるようになりました。」と案内されている通り、正式に投稿タイプテンプレートが、固定ページだけでなく、投稿ページでも、プロダクトページでも使えるようになりましたね。だから、「設定>表示設定>固定ページ」で「フロントページ」に「最新の投稿」をチェックしても、固定ページでフロントページテンプレートを適用できます。
フロントページとは別の固定ページにフロントページテンプレートを適用した例です。
http://wordpress.woodstock.work/twenty-seventeen/twenty-seventeen-front-page/
解決済みのようですが、
はい、私もその通り「設定→表示設定から固定ページ」を選択するとfront-pageは動作しますが、「設定→表示設定から 最新の投稿」を選択してもfront-pageが動作するはずが、しない事に疑問点が残っています。
テンプレート階層の標準の動作では、front-page.phpが存在すれば、トップページにこのテンプレートが使用されます。なので、疑問なのは当然ですね。
しかし、Twenty Seventeenでは、動作しません。
前回の回答で、「原因部分」として挙げたコードを見てください。
これは、通常のテンプレート階層の動作をフィルターフックを使って 適用されるテンプレートを変更しています。is_home()ならば、index.phpを適用、そうでなければ、テンプレート階層のfront-page.phpを使うという風に、テンプレート階層の動作を変更しているのです。
かつては、テンプレート階層は聖域で、「テンプレート階層の動作を変更するような事はしてはいけない。」という事がよく言われましたが、WordPress4.7になり、テンプレート階層の挙動を変更するフィルターが、一気に充実してきているので、テンプレート階層周りのフィルターをよく理解しておく必要がありそうですね。
nobitaさん、ご返信ありがとうございます。
トピック勝手にcloseしてすみませんでした。
>is_home()ならば、index.phpを適用、そうでなければ、テンプレート階層のfront-page.phpを使うという風に、テンプレート階層の動作を変更しているのです。
WordPress4.7になった事で階層の変更(assetsの中にフォルダあることも)があったことによっての仕様ということで納得しました。
またphp5.6系でも正常に動作することが判明して安心しました。詳しいご説明、本当にありがとうございました。
これでこちらのトッピクはクローズします。Du bist der Lenz様、ご返信ありがとうございました。
>正式に投稿タイプテンプレートが、固定ページだけでなく、投稿ページでも、プロダクトページでも使えるようになりましたね。
このような便利な機能が簡単に実装できるのは制作者にとっても幸せな事です。
これまでに色んな情報を頂けまして、本当にありがとうございました。
これでこちらのトッピクはクローズします。
- トピック「twentyseventeenのfront-page.phpが表示されない」には新たに返信することはできません。