这是我的最终解决方案。感谢@butlerblog的提示。
我创建了一个组件包,可以包含在每个网站上(并随时更新新功能)。
这是composer.json
文件
{
"name": "tim/wp-utils",
"description": "WordPress utility functions",
"type": "component",
"version": "1.0.2",
"authors": [
{
"name": "Timothée Moulin",
"email": "[email protected]"
}
],
"require": {
"php": ">=7.3",
"robloach/component-installer": "*"
},
"extra": {
"component": {
"files": [
"*"
]
}
}
}
请注意
robloach/component-installer
要求和
extra component
配置这允许我将“插件”放在我的应用程序中任何符合逻辑的地方(而不是供应商目录)。
在我的插件文件中,我用function_exists
检查
<?php
if (!function_exists(\'my_utility_function\')) {
function my_utility_function() {
// @todo
}
}
然后在每个插件中
plugin.php
和主题
functions.php
文件I包括实用程序文件
<?php require_once WP_CONTENT_DIR . \'/components/wp-utils/wp-utils.php\';