Совместное Использование Компонентов Заголовка На Нескольких Сайтах


У меня есть платформа с несколькими сайтами, и я пытаюсь поделиться меню, которое у меня есть в основном, с другими сайтами, расположенными в разных папках.

Это тег PHP в главном, который выводит меню, которое мне также нужно в заголовке другого:

<?php dokan_header_user_menu(); ?>

Я попытался использовать его так, как он есть в заголовке /site2, и это не сработало. Я также попробовал это:

<?php
    include $_SERVER['DOCUMENT_ROOT']."site.com/wp-content/themes/dokan/header.php";
?>

Все еще не везет. Любые советы будут очень признательны.

Ура!

Author: dingo_d, 2016-02-11

2 answers

Передайте эту функцию на аутсорсинг в плагин

Если вы хотите, чтобы определенная функция была доступна в нескольких темах, лучше всего включить ее в плагин и активировать по всей сети.

Найдите функцию

Найдите функцию в теме, где она доступна. Теперь у вас есть две возможности:

  • Удалить функцию из текущей темы
  • Сделайте дубликат этой функции для использования в других темах (рекомендуется)

Создайте плагин

Создайте файл в каталоге плагинов, f711-custom-menu-function.php или как вы хотите, чтобы ваш плагин назывался.

Внутри этого файла вы создаете заголовок плагина:

/*
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
*/

Теперь ваш плагин готов к использованию.

Заполнение вашего плагина

Скопируйте функцию меню вашей темы и присвойте ей определенный префикс, например, так:

function f711_dokan_header_user_menu() {
    // insert your functionality from the original function here
}

Активируйте свой плагин

Это самоописание. Просто не забудьте активировать его по всей сети

Используя его в разных темы

Теперь вы можете вызывать f711_dokan_header_user_menu() во всех темах, доступных в вашей сети, используя одну и ту же функцию.

Очистка

Возьмите свою оригинальную тему, откуда взята функция, и измените заголовок, чтобы использовать новую функцию плагина. После этого вы можете удалить старую тематическую функцию, чтобы избежать избыточности.

 1
Author: fischi, 2020-06-15 08:21:38

Это старый вопрос, вот еще одно простое решение для совместного использования МНОГОСАЙТОВОГО МЕНЮ WORDPRESS на всех сайтах сети,

Не только меню, вы можете использовать тот же метод для совместного использования чего-либо, кроме виджетов, на всех сайтах сети.

Вот решение: Отредактируйте свой 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); 
 7
Author: Muhammad Abdullah, 2017-04-18 17:46:05