🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

Q&A

解決済

2回答

1390閲覧

自作ページ ヘッダーファイルの <?php wp_head();?> がうまく反応しない

退会済みユーザー

退会済みユーザー

総合スコア0

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

0グッド

0クリップ

投稿2019/11/01 04:55

編集2019/11/01 05:11
<?php wp_head();?> がうまく反応しない件について、ご教示いただきたいです。

テーマはLightningを使用しております。

テーマファイル/templates/page_test/test.php

こちらのページは、カスタム投稿タイプのページのスラッグ情報をtest.phpで受け取って
スラッグによって違うページを表示させています。

固定ページや投稿ページ同様に、test.phpヘッダーやフッターを表示を表示させたいのですが、
<?php get_header(); ?>
<?php get_footer(); ?>
などをtest.phpの上下に入れても、ヘッダーやフッターは表示されますが、ヘッダー、フッターのCSSやjQueryなどが反応しないです。
デベロッパーツールで<head>内を確認すると、<link><script>の記述は見られますが、
デベロッパーツールの「Styles」には本来あるはずの、プロパティなどが表示されておらず、機能していない状況です。

header.phpに記載されている、<?php wp_head();?>内のCSSなどのパスが、テーマファイル直下でないと機能しない仕組みなんでしょうか。

※追記
「テーマファイル直下でないと機能しない仕組みなんでしょうか。」と記述しましたが、
勘違いしていました。header.php自体はテーマファイル直下に存在していれば反応すると思うのですが、
なぜ反応していないんでしょうか。Lightning付属のbootstrapなども反応していないです。

style.cssやscript.jsなどは、自作header.phpにてecho get_template_directory_uri();で読み込めば反応しますが、
Lightning付属のCSSなど、レスポンシブCSSについては、どれがどれか分からず指定出来ない状況です。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

FKM

2019/11/01 05:19

スクリプトが動かないときはまず、ブラウザの開発画面でスクリプトエラーが表示されていないか確認してみてください
退会済みユーザー

退会済みユーザー

2019/11/01 05:36

FKMさん ご回答ありがとうございます。 確認してみたところ、26件ほどの.jsファイルが「net::ERR_ABORTED 404」 となっておりました。ですが、CSSに関しては1件もエラーが出ていませんでした。 bootstrapのCSSやJavascriptに関しては、<head>内にも記載されていないようです。 (<link rel="dns-prefetch" href="//maxcdn.bootstrapcdn.com">のようなものも) 固定ページや投稿ページのheadで読み込んでいるものをtest.phpで全て読み込みたいです。 test.phpに機能するように、funcitons.phpに対して何か記述が必要なのでしょうか。
FKM

2019/11/01 05:40

404ってことはそのファイル存在しないってことですね。ファイル名とかパスの階層とか間違ってませんか?
退会済みユーザー

退会済みユーザー

2019/11/01 05:42

ありがとうございます。 固定ページや投稿ページでは、このようなエラーは出ないため間違っていないと思われます。
guest

回答2

0

footer.phpに

PHP

1require get_template_directory() . '/header.php';

と追記することで解決しました。

投稿2019/11/01 06:31

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

PHPはその当該ファイルにしか適用されないため、外側にあるPHPファイルを読み込む際にはrequire文を指定する必要があります。

このページの別ファイルの読み込みの項目を確認してみてはいかがでしょうか
WordPress functions.php

投稿2019/11/01 05:49

FKM

総合スコア3647

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/11/01 06:02

ありがとうございます。ご紹介いただいたサイトを参考にfunctions.phpに test.phpにheader.phpを適用するために、以下の文を追記しました。 require get_template_directory() . '/header.php'; こちらで無事に、ヘッダーとフッターのCSS、JS無事反応しました。 ありがとうございます。記述的にはこちらで問題ないでしょうか。
FKM

2019/11/01 06:31 編集

間違いないと思います。get_template_directoryはテンプレートディレクトリが存在するパスアドレスを取得する関数です。そしてドットは関数や変数と文字列をつなぐ連結演算子です。 つまり、requireで、絶対パスに即したheader.phpを呼び出すってコマンドを実施することになります。一度だけ呼び出すのならrequire_onceでもいいと思います。
退会済みユーザー

退会済みユーザー

2019/11/01 06:31

大変参考になる回答ありがとうございました。 またよろしくお願いいたします。
退会済みユーザー

退会済みユーザー

2019/11/01 07:01

1つ気になったことがあるので、質問させていただきます。 「require get_template_directory() . '/header.php';」 を記述すると、「<?php get_header();?>」を使用している 固定ページや投稿ページも少しレイアウトが変わってしまいました。 特定のページのみに反映させるにはどのように記述すればいいのでしょうか。
退会済みユーザー

退会済みユーザー

2019/11/01 08:36

ありがとうございます。 実は現在修正しているサイト、別の人が作成したサイトでかなりカスタマイズしているのですが 子テーマを作成していないようで。。。少しややこしいです。 少しまとめますと、「テーマファイル/templates/page_test/test.php」に「テーマファイル/header.php」を使用したいです。 https://www.webantena.net/wordpress/require-wp-blog-header/#WordPress こちらを参考に、test.phpの最上部に「require('../../header.php');」と記載したのですが、 「require(../../header.php): failed to open stream: No such file or directory in /Lightning/templates/page_test/test.php on line 2」 と表示されてしまい、うまくいかないです。 「require get_template_directory() . '/header.php';」をfunctions.phpに書き込むと、全てのページに反映され、なぜかカテゴリーのセレクトボックスをクリックすると、通常だと表示される画面が、 「Warning: Cannot modify header information - headers already sent by (output started at /wp-includes/class.wp-styles.php:242) in /wp-includes/pluggable.php on line 1251 Warning: Cannot modify header information - headers already sent by (output started at /wp-includes/class.wp-styles.php:242) in /wp-includes/pluggable.php on line 1254」 というエラーが表示され、上手く動作しません。 固定ページや投稿ページの、header.phpを「Lightning/templates/page_test/test.php」で使いたいだけなんですけどね。。。
FKM

2019/11/01 09:05

別問題となってきているみたいなので、別項目で質問した方がいいかも知れませんね。
退会済みユーザー

退会済みユーザー

2019/11/01 09:05

ありがとうございます。 そうさせていただきたいと思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問