web-dev-qa-db-ja.com

ネットワークインストールの別のサイトからメニューを表示するにはwp_nav_menu()を使用しますか?

だから私は基本的に古いサイトをアップグレードしていて、いくつかのブログなどでもマルチサイトにする必要があります。

メインサイトのMenu(adminから作成されたもの)を他のサイトで上品に利用できるようにしたいです。つまり、すべてのサイトにテーマがあり、すべてのサイトでwp_nav_menu()を実行できればいいでしょう。

何か案は?

私はswitch_to_blog()を見ましたが、私はそれが廃止されるのを見ます。

乾杯!

5
GreenDude

これは私が最近使ったものです。それはとても単純ですが、私にとってはうまくいきます。

    function wp_multisite_nav_menu( $args = array(), $Origin_id = 1 ) {

        global $blog_id;
        $Origin_id = absint( $Origin_id );

        if ( !is_multisite() || $Origin_id == $blog_id ) {
            wp_nav_menu( $args );
            return;
        }

        switch_to_blog( $Origin_id );
        wp_nav_menu( $args );   
        restore_current_blog();

    }

私はこれをネットワーク全体を実行することを目的としたたくさんの小さなフックと関数をホストするmu-pluginファイルに投げました。

4
Michal Mau

私は言いたい:メニューを出力するための簡単な機能を提供する短いプラグインを書く。その後、ネットワーク全体で有効にします。

2
kaiser