サポート » 使い方全般 » テーマファイル/page-test/test.php に固定ページや投稿ページのheader.phpを使用したい

  • 解決済 touro

    (@touro)


    テーマはLightningを使用しております。
    テーマファイル/page-test/test.php に固定ページや投稿ページのheader.phpを使用したいのですが、
    test.php内の最上部に、<?php get_header(); ?>を記載したところ
    ヘッダーはちゃんと表示されるのですが、head内CSSJSが正しく読み込まれず
    スタイルや動きがHTMLのみの場合になってしまいます。

    Teratailの方でも質問させていただいておりまして、こちらの方でfunciton.php
    require get_template_directory() . '/header.php';
    を記載することで解決するかも、というお声を頂き試してみたところ、
    すんなりCSSJSが適用されたheader.phpを使用できたのですが、
    固定ページや投稿ページにも上書きされてしまい、なぜかカテゴリページがエラーが出てしまい、
    スタイルも少しおかしくなってしまい、使えませんでした。

    [WP]WordPressファイル一式を置いたディレクトリとは異なるディレクトリで、header.php などのテンプレートファイルを使う方法
    こちらを参考に、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
    と表示されてしまい、こちらも上手くいきませんでした。

    テーマファイル/page-test/test.php に固定ページや投稿ページのheader.phpを使用したいのですが
    この場合どのような記載をすることで、上手くいくのでしょうか。よろしくお願いいたします。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • page.phpを子テーマに複製してpage-test.phpにして必要な所だけ書き換えるのではだめですか?

    テーマの第一階層ではダメな理由はありますか?

    トピック投稿者 touro

    (@touro)

    kurudriveさん ご回答ありがとうございます。
    重要なことを書き忘れていました。

    今編集しているサイトは、カスタム投稿タイプのスラッグを取得し、スラッグ別にページを
    表示するようになっているのですが、私自身が作成したものではなく、かなりカスタマイズされている
    のですが、子テーマを作成しておらず少しややこしいです。

    できれば、テーマの第一階層ではなく、現状のままで修正したいと思っています。
    よろしくお願いいたします。

    DRILL LANCER

    (@rickaddison7634)

    まず、そのカスタマイズをした人に訪ねたほうがいいような気がします。

    というのは、ここにいる私達はそのカスタマイズされたコードを見ることができません。
    そのため、アドバイスがてきたとしても当てずっぽうなものになってしまいます。

    というわけで、当てずっぽうなアドバイスですが、
    require get_template_directory() . '/header.php';
    を test.php の最上部に記載するとどうなりますか?

    @rickaddison7634 さんが書かれている通りで、どのようなコードなのか分からないので回答し難いです。よって、私も当てずっぽうですが、

    load_template( get_template_directory() . '/header.php' );

    または

    load_template( get_template_directory() . '/templates/header.php' );

    ではどうでしょうか?

    トピック投稿者 touro

    (@touro)

    RICKさん ishitakaさん お二方ともお世話になっております。ご回答ありがとうございます。
    申し訳ありません。最初に記述している、
    テーマファイル/page-test/test.php
    は間違いで、正しくは以下になります。
    テーマファイル/templates/page-test/test.php

    お二方とも教えてくださったコードなのですが、
    require get_template_directory() . '/header.php';
    load_template( get_template_directory() . '/header.php' );
    こちら上記の2つは
    <?php get_header(); ?>
    のみを記載した場合と同じく、CSSやJSが適用されておりませんでした。

    また、ishitakaさんの2つ目のコードについては、
    load_template( get_template_directory() . '/templates/header.php' );
    Warning: require_once(/wp-content/themes/lightning/templates/header.php): failed to open stream: No such file or directory in /wp-includes/template.php on line 722
    と表示されてしまいます。

    CSSやJSが適用されていない状況で、デベロッパーツールで確認してみたのですが、
    20個ほどのJSのみが、net::ERR_ABORTED 404となっており、
    CSSについては、1件もエラーが表示されておりませんでした。

    デベロッパーツール画面で、Head内を確認してみたのですが、Lightning付属のBootstrapなどの
    CSS、JSなどが読み込まれておりませんでした。

    1つ気になったのですが、
    テーマファイル/templates/page-test/test.php
    の1つ上の階層の、
    テーマファイル/templates/system.php
    というものがあり、中には

    <?php $slug = $post->post_name;
    get_template_part('templates/page_test/'.$slug);

    とのみ書かれておりました。こちらが原因の可能性はありますでしょうか。
    よろしくお願いします。

    • この返信は3年、 4ヶ月前にtouroが編集しました。
    DRILL LANCER

    (@rickaddison7634)

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

    この場合require('../../header.php');は テーマファイル/templates/header.php を読むコードです。
    もし、 テーマファイル/header.php が存在する場合、require('../../../header.php');で読み込めるかもしれません。

    テーマファイル/templates/system.php

    <?php $slug = $post->post_name;
    get_template_part('templates/page_test/'.$slug);

    これは、templates/page_test/test.phpを読み行くだけの処理なので問題はなさそうです。
    get template part
    むしろ、system.php が読み込まれる以前の問題のような気がします。

    P.S.
    親テーマをカスタマイズした場合、アップデートをするとカスタマイズ内容は消えてしまいます。
    なので、カスタマイズ内容が消えない場合はそのテーマは次のどれかであることが想定されます。

    • Lightning をベースとしているが実は別物
    • 実は子テーマである

    これは テーマファイル/style.css の記述内容で判断可能です。

    P.P.S.
    カスタマイズを施した人と連絡は取れましたか?

    トピック投稿者 touro

    (@touro)

    RICKさん ありがとうございます。
    require('../../../header.php');
    と記入してみた場合も
    Warning: require(../../../header.php): failed to open stream: No such file or directory in /lightning/templates/page_order/mens_order.php on line 2
    と表示されました。

    一度、テーマをアップデートすると追加したPHPなどCSSが消えたようで、
    バックアップを復元して戻したらしいです。

    申し訳ありません。書き忘れていました。カスタマイズを施した人とは連絡は取れないようです。
    こちらのサイトは知人のものなのですが、その知人がコーダーに頼んだようで、
    そこから連絡は取れていないとのことです。よろしくお願いいたします。

    トピック投稿者 touro

    (@touro)

    ※追記です。
    Lightningのバージョンはかなり古いものでして、
    バージョンは3.0.4でした。現在追加しているPHPなどコードを
    子テーマを作成し、バージョンアップしてもいいのですが、
    かなり追加している項目が多く、私がいじるとバグが起きてしまう可能性があり、
    どうしようかと考えているところです。この場合、バージョンアップし子テーマを作成
    するほうがよろしいのでしょうか。よろしくお願いいたします。

    DRILL LANCER

    (@rickaddison7634)

    /lightning/templates/page-test/test.php について話をしていたはずですが・・・
    なぜ急に /lightning/templates/page_order/mens_order.php が出てきたのかがわかりません。

    • 親テーマを直接カスタマイズしている(新機能追加時等に対応できない)
    • これまでのやり取りでファイル構造が全くつかめない
    • 知人が依頼したコーダーと連絡がつかない
    • コーダーが書いたコードがトピック主の理解を超えている?

    以上の点から、これからのことを考えると、
    トピック主が知人から改めて依頼を受けた上で
    1から作り直したほうが早いような気がしてきました。

    というわけで、私は本件から撤退させていただきます。
    お力になれず申し訳ありませんでした。

    もし、1から作り直す際はこのトピックを閉じて新たにトピックを建てることをおすすめします。

    P.S.
    Lightning 7.0.0 でファイル構造が大幅に変更になったので、
    現状で子テーマを作成するのはバグの原因になりかねません。
    https://lightning.nagoya/ja/archives/lightning-7-0-lightning-pro-2-0-preinformation

    トピック投稿者 touro

    (@touro)

    RICKさん ありがとうございます。
    今までは仮として、page-test/test.phpと記載させていただいておりました。
    私のミスでわかりにくくなってしまい、申し訳ありません。

    かしこまりました。一度相談し、作り直すか今回は諦めるか、決めてみたいと思います。
    ありがとうございました。

    DRILL LANCER

    (@rickaddison7634)

    ちなみに、Lightning では 固定ページは4種類のテンプレートから選べます。

    • デフォルト
    • No sidebar
    • Landing Page
    • Landing Page for Page Builder

    Landing Page のみ特殊な仕様で詳細は下記に書かれています。
    https://lightning.nagoya/ja/setting/basic/landing_page_template

    これらのテンプレートは画面右側の「ページ属性」の「テンプレート」から選べます。

    これらの機能は最新の WordPress を使用していれば使えます。

    DRILL LANCER

    (@rickaddison7634)

    新たに固定ページのテンプレートを追加したい場合は下記が参考になると思います。
    https://wpdocs.osdn.jp/%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%86%E3%83%B3%E3%83%97%E3%83%AC%E3%83%BC%E3%83%88

    トピック投稿者 touro

    (@touro)

    RICKさん ありがとうございます。
    参考にさせていただきます。

    とりあえず、子テーマがないと色々とややこしいので
    今のLightning子テーマを作成し、既に追加・編集している部分を移動し、
    テーマアップデートまで行おうと思います。
    完了後、またご報告させていただこうと思いますので、
    こちらの投稿は、未解決のままにさせていただきます。

    よろしくお願いいたします。

    トピック投稿者 touro

    (@touro)

    何故かは分かりませんが、子テーマを作成し親テーマをアップデートすることにより
    無事解決いたしました。皆様のご回答ありがとうございました。

15件の返信を表示中 - 1 - 15件目 (全15件中)
  • トピック「テーマファイル/page-test/test.php に固定ページや投稿ページのheader.phpを使用したい」には新たに返信することはできません。