管理中的相同页眉/页脚,跨多站点中的所有网络站点

时间:2016-07-08 作者:C C

我想了一些想法来实现这一点,并想出了一些奇怪的想法。。。但这是可行的。

我正在为我的多站点网络管理创建一个主题。当用户登录时,他们将同时看到前端和后端页面,因此在他们遍历这两个空间时保持一致的外观对我来说很重要——我不希望他们进入WP“普通的旧”管理仪表板。

那么,如何获得基地的themed header/footer 当用户登录并在后端时,是否显示在任何网络站点上?

1 个回复
SO网友:C C

以下是我所做的:

已插入ob_start()ob_get_clean(), 在中的战略位置header.phpfooter.php 在源于我的网站主主题的子主题中。

<some header stuff> 
ob_start()  
<header html I want to reuse across network>
<?php $html = ob_get_clean(); echo $html; harvest_html($html, \'header\'); ?>
功能harvest_html 只需获取字符串并将其写入文件即可。我对页脚也做了同样的事情。为了降低开销,我只允许在用户is_super_admin(). 只要超级管理员至少登录一次,就会获取页眉/页脚。

然后,在一个简单的插件中,我通过挂接admin_headin_admin_footer. 当然,任何需要的CSS或JS也需要在那时排队。

它起作用了。任何登录到其子域站点并转到任何管理页面的用户都将获得基本站点的页眉/页脚,而不管他们当前使用的主题是什么。

而且,它的维护相对较低,因为对基本站点的页眉/页脚所做的任何更改都将自动获取。

我还处理动态的页眉/页脚片段(例如,如果一些PHP呼应用户名或一天中的时间等),方法是解析出函数调用,由我放在它们周围的特殊包装器标识,然后在注入Admin时重新评估它们。