• 解決済 v8Bgpy

    (@v8bgpy)


    親テーマは 「header.php」 → 「site-header.php」 → 「global-menu.php」 という順番でそれぞれincludeで入れ子状態で読み込まれています。
    この最後のglobal-menu.phpに一行のphpを追加したいのですが、出来ずに困っています。

    「header.php」「site-header.php」も子テーマに移動し、「TEMPLATEPATH」も「get_stylesheet_directory_uri()」に変更したら出来そうだったのですが、親テーマの方でさまざまなライブラリを読み込んでいるみたいで、下記のエラーが出ました。

    Fatal error: Call to undefined function get_custom_header() …

    親テーマのライブラリを読み込んでいるfunctions.phpの該当部分を、子テーマfunctions.phpにコピーし読み込み先を子テーマ側のライブラリに変更してみたのですが、白い画面になってしまいうまくいきませんでした。

    そこで、子テーマのfunctions.phpから親テーマの「site-header.php」の「TEMPLATEPATH」を「get_stylesheet_directory_uri()」に変更して、子テーマの「global-menu.php」を読み込むことが出来ればうまくいくのではと思ったのですが、このようなことは可能でしょうか?
    自分なりに調べたところ「remove_action」や「add_action」をうまく使えば可能かと思ったのですが、具体的にどう書けばよいのかわからず、ご質問させていただいた次第です。

    可能であればご教授いただけると幸いです。
    よろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • モデレーター jim912

    (@jim912)

    include ではなく、get_template_part を使うのが、WordPressの標準的な手法です。これを使っておくと、子テーマ内のテンプレート → 親テーマ内のテンプレート の順にテンプレートを探すため、パスをいちいち変えずに済み、子テーマのメリットを十分に活かすことが可能です。

    なんからの理由で、get_template_part が使えない場合、使うべきは、 get_stylesheet_directory_uri ではなく、get_stylesheet_directory です。

    こんにちは、

    テーマが提示されていないので、あくまで 予感ですが

    この最後のglobal-menu.phpに一行のphpを追加したいのですが、出来ずに困っています。

    これが出来ないだけで、正常に動いているなら、global-menu.php で wp_nav_menu()が使われていないかどうか調べて、(別名の相当関数使っている場合は その中も調べて)

    幸運にも見つかるようでしたら、wp_nav_menuフィルターにフックすればいいかも

    トピック投稿者 v8Bgpy

    (@v8bgpy)

    jim912さま
    御指摘ありがとうございます!今後は get_template_part を使用します。

    トピック投稿者 v8Bgpy

    (@v8bgpy)

    nobitaさま
    ありがとうございます!一度探してやってみます。

    トピック投稿者 v8Bgpy

    (@v8bgpy)

    ご連絡が遅くなりすみません。
    私のスキルでは出来なさそうなので、今回は諦めます。
    jim912さま、nobitaさま お忙しい所ご連絡いただきまして
    ありがとうございました。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「親テーマのincludeファイルを子テーマfunctions.phpで変更したい」には新たに返信することはできません。