• 超初心者です。マルチサイト設定を行って、次の手順で親テーマと子テーマを作成したのですが、親テーマで制作したカスタムナビゲーションが子テーマに全く表示されません。理由と解決方法を教えてくださ~い!

    【制作手順】
    1,TwentyElevenをもとに、親となるテーマを作成。home.phpとして保存。index.phpはデフォルトのまま。
    2,function.phpと外観・メニューで3つのカスタムナビゲーションを作成。配置場所はheader.phpに2箇所、footer.phpに1箇所。動作及び表示確認成功。
    3,親テーマのフォルダー位置
    ~~/wp-content/themes/twentyeleven ← ここ

    4,子テーマフォルダーをtwentyelevenと同じ階層に新設。名前は”REPOT”
    ~~/wp-content/themes/REPOT ← ここ

    5,REPOTフォルダー内に所定のstyle.cssを作成。内容は以下のとおり
    /*
    Theme Name: 活動レポート
    Theme URI: http://localhost/XXX/REPROT
    Description: 活動レポートです。
    Version: 1.0
    Author: toshiki
    Template: twentyeleven
    */
    /*—– 親テーマのstyle.css読み込み —–*/
    @import url(“../twentyeleven/style.css”);

    6,ネットワーク管理者の権限でサイトの新規追加を実施。サイト名”REPORT”

    【現象】
    (1)子テーマREPORTで固定ページ/投稿ページを作成しても、親テーマのカスタムナビゲーションが3つとも表示されない。その他の内容やデザインは表示される。
    (2)index.phpがデフォルトのままなのでhome.phpを複製/名称変更してみたが変わらず。
    (3)試しにindex.phpを削除してみたが、現象に全く変化がなかった。子テーマはどこを見て親テーマを継承しているのかわからなくなってしまいました。

    以上よろしくお願いします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • 1,TwentyElevenをもとに、親となるテーマを作成。home.phpとして保存。index.phpはデフォルトのまま。
    2,function.phpと外観・メニューで3つのカスタムナビゲーションを作成。配置場所はheader.phpに2箇所、footer.phpに1箇所。動作及び表示確認成功。

     
    ‘TwentyElevenをもとに、親となるテーマを作成。’とありますが、親テーマのフォルダ名は何ですか?
    子テーマ’REPORT’のstyle.cssで’Template: twentyeleven’となっていますので、現在の親テーマはTwenty Elevenのようですが。
    ‘表示確認成功’とありますが、この時有効にしていたテーマは何ですか?
    子テーマ’REPORT’に変更後、[メニュー]で設定を行いましたか?

    トピック投稿者 toshiki

    (@toshiki)

    早速のご返信ありがとうございます。
    親テーマのフォルダ名はご推察のとおり”twentyeleven”です。
    また成功時のテーマもtwentyelevenでした。
    子テーマ’REPORT’に変更後、親テーマと同じ内容の「テーマの場所」が表示されていて、確かにfunction.phpが継承されていることが確認できました。
    また、[メニュー]項目を各々入力すると親テーマどおり再現出来そうです。
    しかしこれでは子テーマごとに親テーマと同じメニューを手入力しなければならず、子テーマにする意味がありません。
    メニューの設定で親テーマを継承する操作があるのでしょうか?
    お忙しいところ申し訳ありません。よろしくお願いいたします。

    もしかして、親テーマを適用しているサイトと子テーマを適用しているサイトは、別々の違うサイトではないですか?
    こちらの環境では、サイトが同じ場合は特に何もしなくても、メニューが継承されています。
    サイトが違う場合は、そのままでは当然メニューの継承は無理ですので、カスタムメニューを利用している各テンプレートのwp_nav_menu()の前で、switch_to_blog()でサイトを切り替えてください。
    メニュー表示終了後の箇所で、restore_current_blog()で本来のサイトに戻します。
     
    管理画面の[メニュー]までは変更されませんので、管理画面で各ナビゲーションに表示するメニューを選択するのではなく、wp_nav_menu()で表示するメニューを指定する必要があります。
    WPMU_Functions/switch_to_blog – Codex 英語版
    テンプレートタグ/wp_nav_menu – Codex 日本語版

    指定したメニューに絞り込む

    <?php wp_nav_menu( array('menu' => 'Project Nav' )); ?>

    トピック投稿者 toshiki

    (@toshiki)

    ご指導ありがとうございます。ご指摘のとおりあたかも別々のサイトのようなふるまいなのですが、確認の方法や解決策が解りません。手順書通りに作業しているはずなのですが・・?
    さてご指導にもとづきheader.phpの一部の該当箇所を以下のとおりに記述してみました。
    しかし全く変わりませんでした。”$new_blog”という部分には何か特定の記述をしなければいけなかったのでしょうか?
    <以下、記述内容>
    <?php switch_to_blog($new_blog) ?>
    <?php wp_nav_menu( array( ‘theme_location’ => ‘primary’ ) ); ?>
    <?php restore_current_blog(); ?>

    なおもっと根本的な問題があるのではないかと案じています。
    システムやデータの環境の詳細を記載させて頂きます。
    【サーバー】
    XAMPPを使用して自分のPCをローカルサーバー化
    【サイトディレクトリ】
    ・xampp\htdocs内に任意名(この文では仮称として”toshiki”と表すことにします。)のフォルダーを作成し、この中にwordpressを展開 ルートアドレス http://localhost/toshiki
    ・wp-content\themesにtwentyelevenをはじめ子テーマにしたい複数のフォルダを作成
    【子テーマの作成手順】
    1,サイトネットワーク管理者で以下の内容で”サイト”-”新規追加”
     ・サイトのアドレス=該当のフォルダー名、サイトのタイトル、管理者メールアドレスは任意
    1,テーマ:親と同じテーマを指定

    以上です。
    ただ一つ気になる事があります。home.php作成時にはtwentyelevenではない、他のフォルダーを使っていたことです。途中でtwentyelevenに必要なテンプレートを移植しました。子テーマを作ろうとする前です。各ファイルへのリンクアドレス、表示や動作も正常に見えるのですが・・・
    お手数をおかけして申し訳ありません。よろしくお願いいたします。、

    “$new_blog”という部分には何か特定の記述をしなければいけなかったのでしょうか?

     
    切り替え先のブログIDを指定します。
    サイトネットワーク管理者の[ダッシュボード] > [サイト]にアクセスして、サイト一覧を確認してください。
    各サイトの編集リンクが’http://example.com/wp-admin/network/site-info.php?id=%5BID%5D’となっていますから、この’ID’をswitch_to_blog()で指定するといいです。
    親サイトのIDは通常は1ですから、この場合は’switch_to_blog(1)’とします。
    テーマは何を使っていても大丈夫です。子テーマ、親テーマ問いません。
    switch_to_blog()で親サイトに切り替えて、wp_nav_menu()で表示するナビゲーションのメニュー名を指定します。

    kz

    (@kz)

    ネットワーク(マルチサイト)の親サイト・子サイトと
    テーマの親テーマ・子テーマが、ごっちゃになってる気がします。

    親サイトで設定したカスタムメニューを子サイトで表示したいなら
    <?php switch_to_blog(1) ?>
    とすれば OK です。

    トピック投稿者 toshiki

    (@toshiki)

    ご指導ありがとうございます。今手が混んでいるので後ほど試してみます。

    トピック投稿者 toshiki

    (@toshiki)

    Kzさん。出来ました!header.phpに上記の記述を追加して成功です。
    ありがとうございました。
    お時間のある時にご解説を賜りたく存じております。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「親テーマのカスタムナビゲーションが子テーマに反映されない」には新たに返信することはできません。