J'ai une plate-forme multi-sites et j'essaie de partager le menu que j'ai en général avec d'autres sites situés dans des dossiers différents.
Ceci est la balise PHP dans le menu principal qui ouvre le menu dont j'ai également besoin dans l'en-tête d'un autre:
<?php dokan_header_user_menu(); ?>
J'ai essayé de l'utiliser tel quel dans l'en-tête de /site2
et cela n'a pas fonctionné. J'ai aussi essayé ceci:
<?php
include $_SERVER['DOCUMENT_ROOT']."site.com/wp-content/themes/dokan/header.php";
?>
toujours pas de chance. Tous les conseils seront grandement appréciés.
À votre santé!
Si vous souhaitez qu'une fonction spécifique soit disponible sur plusieurs thèmes, il est préférable de l'avoir dans un plugin et de l'activer à l'échelle du réseau.
Localisez la fonction dans le thème où elle est disponible. Vous avez maintenant deux possibilités:
Créez un fichier dans votre répertoire de plugins, f711-custom-menu-function.php
ou ce que vous voulez que votre plugin soit appelé.
Dans ce fichier, vous créez l'en-tête du plugin:
/*
Plugin Name: F711 Menu Function
Plugin URI: http://yourdomain.com
Description: Using the menu function across different themes in my network
Version: 1.0
Author: Dave_O
Author URI: http://wordpress.stackexchange.com/users/58774/dave-o
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: f711-menu-function
*/
Votre plugin est maintenant prêt à être utilisé.
Copiez la fonction de menu de votre thème et attribuez-lui un préfixe spécifique, par exemple, comme ceci:
function f711_dokan_header_user_menu() {
// insert your functionality from the original function here
}
Ceci est auto-explicatif. Assurez-vous simplement de l'activer à l'échelle du réseau
Vous pouvez maintenant appeler f711_dokan_header_user_menu()
dans tous les thèmes disponibles sur votre réseau, en utilisant exactement la même fonction.
Prenez votre thème d'origine d'où provient la fonction et modifiez l'en-tête pour utiliser la nouvelle fonction de plug-in. Ensuite, vous pouvez supprimer l'ancienne fonction spécifique afin d'éviter les redondances.
C'est une vieille question, voici une autre solution simple pour le partage de WORDPRESS MULTISITE MENU sur tous les sites du réseau,
Non seulement menu, vous pouvez utiliser la même méthode pour partager autre chose que des widgets sur tous les sites du réseau.
voici la solution: Editez votre Header.php
//store the current blog_id - Use this function at the start of the function that you want to share
global $blog_id;
$current_blog_id = $blog_id;
//switch to the main blog which will have an id of 1
switch_to_blog(1);
//output the WordPress navigation menu - incase of menu-sharing use this
wp_nav_menu(
//add your arguments here
);
//switch back to the current blog being viewed - before ending of the function
switch_to_blog($current_blog_id);