質問: ### ■やりたいこと トップページだけ別のCSSファイルを読み込ませたいです。 具体的には、「top.php」というページで「top.css」を読み込ませて、それ以外のページでは「style.php」を読み込ませたいです。 ### ■いまの状況 いまは、「header.php」の直前に下記コードを書いています。 なのに、「style.css」しか読み込んでくれないんです。 ``` ``` 尚、上記コードはこちらのサイトを参考にしました。 ・条件分岐の方法 ・CSSファイルへのリンクの仕方 ### ■確認したこと 【1】 固定ページのテンプレート選択項目ではちゃんと「top.php」を選択しています。↓ ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/21cdb91e746a4f0fbbd3d1793c7613b0.png) そしてこの選択は有効に機能しているハズです。 (問い合わせページでは選択したとおりのテンプレート「contact.php」を読み込んでくれているため。) 【2】 「top.php」の中身は、通常の固定ページテンプレート「page.php」と同じものです。 なので、いずれも「header.php」を読み込むようになっているはずです。 【3】 「top.php」「style.php」は、いずれも「header.php」と同じフォルダ階層にあります。 ---補足ココカラ--- 【4】 出力されたHTMLでは、トップぺージとそれ以外のページでこのように違っていました。 すなわち、トップページの出力はこう↓で、 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/8617e7f5971d0abdeec6320dcccb87cb.png) それ以外のページはこう↓でした。 ![イメージ説明](https://teratail.storage.googleapis.com/uploads/contributed_images/9105f3427f1c18bdf3c5b2c667353f46.png) このように違っているのに、なぜ「top.css」は無視されてしまうのでしょうか。 このような出力の違いは、「cssの読み込みはこっちだよ」という意味ではないのでしょうか?? 開発ツールから見ても、「top.css」に書いたclassへの指示は何もなくて、「style.css」の指示しかありませんでした。 ---/補足ココマデ--- 以上です。どうぞよろしくお願いいたします。m(__)m
回答: if ( is_page('top') ) → if( is_page_template('top.php') ) に治すだけですよ。 おそらく「トップページ」という言葉に引きずられて、「最上位に表示しているページ」と認識されていると思いますが、 やりたいことに書いてある内容だと「固定ページ_top」という名前をつけたページテンプレートを使用しているだけに見えます。