跨多站点共享页眉组件

时间:2016-02-11 作者:Dave_O

我有一个多站点平台,我正在尝试与位于不同文件夹中的其他站点共享主菜单。

这是main中的PHP标记,它拉取菜单,我还需要在other的标题中使用该菜单:

<?php dokan_header_user_menu(); ?>
我试着使用它,因为它是在/site2, 但它没有起作用。我也试过:

<?php
    include $_SERVER[\'DOCUMENT_ROOT\']."site.com/wp-content/themes/dokan/header.php";
?>
还是没有运气。任何提示都将不胜感激。

干杯

2 个回复
最合适的回答,由SO网友:fischi 整理而成

将此功能外包到插件中

如果您希望跨多个主题提供特定功能,最好将其包含在插件中,并在网络范围内激活。

查找函数

在主题中找到可用的函数。现在有两种可能性:

从当前主题中删除此功能,复制此功能以用于其他主题(推荐)创建插件在插件目录中创建文件,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() 在网络中可用的所有主题中,使用完全相同的功能。

清理

从函数的来源获取原始主题,并更改标题以使用新的插件函数。之后,您可以删除旧的TheSpecific函数以避免冗余。

SO网友:Muhammad Abdullah

这是一个老问题,下面是WORDPRESS跨所有网站共享多站点菜单的另一个简单解决方案,

不仅菜单,您还可以使用相同的方法在所有网络站点上共享任何其他窗口小部件。

解决方案如下:编辑标题。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); 

相关推荐

覆盖子目录中的tpl-footer.php

我正在尝试覆盖子主题中的模板文件(tpl footer.php)。根据wordpress文档,只需将具有相同名称和路径的文件添加到子主题中,就可以实现这一点。当我这样做的时候,什么都没有发生。我使用的主题是snsnitan有人知道我错过了什么吗?是否需要覆盖更多文件?页脚。父主题中的php只有:<?php wp_footer(); ?> </body></html>