level-level/ll-plugin-autoloader

简化了在WordPress中加载composer自动加载器和mu插件的过程。

v3.2.0 2024-09-10 14:07 UTC

README

当将0-loader.php文件插入到mu-plugins目录时,它将像普通插件一样加载所有子目录插件。

配置选项

您有多种选项可以操作插件加载器将查找供应商文件夹的位置。在wp-config中定义以下值之一:

1. 默认 == wp-content目录

如果您什么也不定义,它将像2. wp-content目录一样加载。

2. wp-content目录

mu-plugins目录之上的父目录加载(应该是wp-content目录)。仅在未设置LL_AUTOLOAD_DIR时使用。

define('LL_AUTOLOAD_CONTENT_DIR', true);

3. 子主题

使用当前子主题(通过get_stylesheet_directory)作为包含供应商文件夹的主题文件夹。仅在未设置LL_AUTOLOAD_DIR时使用。

define('LL_AUTOLOAD_USE_CHILD', true);

4. 父/默认主题

使用当前父主题(通过get_template_directory)作为包含供应商文件夹的主题文件夹。仅在未设置LL_AUTOLOAD_DIR时使用。

define('LL_AUTOLOAD_USE_PARENT', true);

5. 自定义路径

使用特定目录。脚本将仍然将/vendor/autoload.php追加到该路径。

define('LL_AUTOLOAD_DIR', '/path/to/wordpress/theme/');

概述

预和后自动加载

预自动加载

在加载供应商自动加载文件之前,如果存在,需要目录中指定的pre-autoload.php文件。

此文件可以用于设置Composer加载的依赖项所需的环境变量。

后自动加载

在加载供应商自动加载文件之后,但在加载mu-plugins之前,如果存在,需要目录中指定的post-autoload.php文件。

此文件可以用于引导/配置mu插件加载的依赖项,或触发需要尽可能早发生的操作,但设置自动加载。

添加日志是此例子的一个例子。您可能需要Monolog composer依赖项,但希望在加载mu插件之前进行引导。

强制加载普通插件

在某些情况下,将插件作为必须使用插件加载可能导致插件出现问题。相反,您可以选择像普通插件一样强制加载插件。

在包含供应商文件夹的路径中,创建一个名为ll-forced-plugins.json的文件。内部,粘贴以下内容:

{
	"forced_plugins": [
		{
			"slug": "first-plugin/first-plugin.php",
			"network": false
		},
		{
			"slug": "second-plugin/second-plugin.php",
			"network": true
		}
	]
}

slug引用要加载的插件文件。网络确定如果是一个多站点安装,插件是否应该被网络激活。

请注意,这些强制激活的插件只有在访问WP-admin时才会被激活。这是必需的,因为一些插件希望在激活后立即执行重定向等操作。

从v2.x升级到v3.x

在v3中,默认加载wp-content目录,而不是v2中的模板目录。要恢复行为,请在wp-config.php中设置define( 'LL_AUTOLOAD_USE_PARENT', true );