是否有方法从同一服务器上多个已安装站点的默认位置调用函数?
For example:
\\public_html\\functions\\global_functions.php
具有所有站点的共享功能。
\\public_html\\site1\\wp-content\\themes\\theme1_child\\functions.php
require_once( dirname(__FILE__) . \'../../../../global_functions.php\');
\\public_html\\site2\\wp-content\\themes\\theme1_child\\functions.php
require_once( dirname(__FILE__) . \'../../../../global_functions.php\');
我知道这是不对的,但我不确定这样做是否可行。由于它位于同一台服务器上,我不知道是否有办法查看当前安装点上方的其他目录。
<小时>
After continuing to play with this, I ended up doing it this way:
define ( \'global_functions_dir\', dirname(__FILE__) . \'../../../../../_functions\' );
require_once( global_functions_dir . \'/global-functions.php\');
可以在每个站点上添加,以包含必要的功能。如果有人知道这样做是否有任何安全风险,请告诉我。由于这是一个服务器端调用,我认为这很好??
我已经开始阅读多站点配置,这可能是实现这一点的一个很好的方法。在我对这样做可能产生的问题有了更好的理解之后,我将考虑朝着这个方向前进。谢谢你的帮助。
最合适的回答,由SO网友:Michael Ecklund 整理而成
您的包含路径不正确。
您有:
require_once( dirname(__FILE__) . \'../../../../global_functions.php\');
应在何时:
require_once( dirname(__FILE__) . \'../../../../functions/global_functions.php\');
另一种选择是将您的设置从WordPress的单独安装更改为
WordPress Multi-site.
You would then have a couple of options:
<选项1是
Must-Use Plugin.Plugin (在网络范围内激活)选项3是一个标准插件(根据每个站点激活)我个人建议
option #1 (必须使用插件)。这将激活网络中每个站点的插件,并且不能通过用户界面停用或删除插件。这保证了代码在任何时候都可用于网络中的所有站点。
Option #2 很好,因为它与option #1, 除非您想对可能导致问题的原因进行故障排除,否则只需在管理用户界面中单击即可轻松激活或停用该功能。
Option #3 有点多才多艺。您可以根据每个站点激活插件。也许您需要管理三个站点,但其中只有两个需要该功能。然后你可以在这两个网站上激活它,而不是在第三个网站上。
无论哪种方式,无论您选择哪个选项(与WordPress多站点相关),您只需在一个地方管理功能,而多个站点可以共享和使用该功能。