〔wordpress〕マルチサイトで親サイトのグローバルメニューを子サイトでも使う

公開日:2013年8月29日

マルチサイトで構築する際、親サイトのグローバルメニューを子サイトでも使いたい場合のメモです。

カテゴリー毎にページの構成が違う場合には、1つのサイトで収めようとすると、複雑な条件分岐になってしまうことがあります。

そうすると、メンテナンスや更新作業の際、分りにくいのでマルチサイトで構築しています。

この場合、1つのサイトに見せたいので、ヘッダーやグローバルメニューを子サイトでも利用したいという訳です。

switch_to_blogを使用

※親サイトのIDは(1)ですが(多分)
子サイトのIDを調べるには、サイトネットワーク管理者→サイト(すべてのサイト)を表示して、
調べたい子サイトのパスの上にマウスを乗せると、ブラウザの一番下に絶対パスが現われるので、最後尾のid=の数字を確認します。

<?php switch_to_blog(1); ?>
<?php wp_nav_menu('menu=access'); ?>
<?php restore_current_blog(); ?>

後尾の(1)が、ブログIDです。

<?php switch_to_blog(1); ?>で、親サイトに切り替わり、
<?php wp_nav_menu(‘menu=access’); ?>で、親サイトのカスタムメニューを表示して(’access’は任意のメニュー名)
<?php restore_current_blog(); ?>で、戻ってきます。

上記コードは、グローバルメニューをカスタムメニューで作成している場合です。
普通に、<?php wp_nav_menu(); ?>でも、可能かもしれません。