web-dev-qa-db-fra.com

Utilisez wp_nav_menu () pour afficher un menu à partir d'un autre site lors de l'installation du réseau?

Je suis donc en train de mettre à niveau un site plus ancien et je dois le rendre multisite également pour certains blogs et autres.

J'aimerais que le menu du site principal (créé à partir de l'admin) soit disponible de manière élégante sur les autres sites. C'est-à-dire que chaque site a un thème et ce serait bien si je pouvais simplement wp_nav_menu () sur chaque site.

Des idées?

J'ai jeté un coup d'oeil à switch_to_blog () mais je vois que c'est obsolète.

À votre santé!

5
GreenDude

C'est ce que j'ai utilisé récemment. C'est très simple mais cela fonctionne bien pour moi.

    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();

    }

J'ai jeté cela dans un fichier mu-plugin qui héberge un grand nombre de petits crochets et de fonctions destinées à fonctionner à l'échelle du réseau.

4
Michal Mau

Je dirais: écrivez un court plug-in qui offre une fonction simple permettant d'afficher un menu. Puis activez-le sur tout le réseau.

2
kaiser