voceconnect / wp-dependencies
WordPress的一个composer包,用于管理插件依赖。
    0.2.1
    2021-04-29 18:07 UTC
Requires
- php: >=5.2.4
- composer/installers: ^1.4
This package is not auto-updated.
Last update: 2024-09-13 09:46:16 UTC
README
WordPress的一个composer包,用于自动加载插件依赖。
用法
用于主题和插件
需要依赖和WP Dependencies包
在主题或插件的composer.json中添加wp-dependencies的引用,以及其他需要激活的插件。
{
    "name": "my-account/my-theme",
    "type": "wordpress-theme",
    "authors": [
        {
            "name": "John Doe",
            "email": "john@example.com"
        }
    ],
    "repositories": [
        {
            "type": "composer",
            "url" : "http://wp-plugins.packagist.voceconnect.com/"
        },
        ...
    ],
    "config": {
    	"vendor-dir": "vendor"
    },
    "require": {
        "voceconnect/wp-dependencies": "~0.1",
        "wpackagist/thermal-api: "~0.7"
        ...
    }
}
添加Composer的Autoload
用于WordPress项目
由于WordPress的加载方式,建议将mu-plugins目录设置为供应商。这样可以确保Composer的autoload.php在WordPress插件API设置之后自动加载。
{
    ...
    "config": {
        "vendor-dir": "wp-content/mu-plugins"
    },
    ...
}
用于WordPress主题或插件
在主题的functions.php或插件的主要文件中包含Composer的autoload.php。以下示例假设插件或主题的vendor-dir设置在composer.json中设置为vendor。
// bootstrap composer autoload for dependencies
if(file_exists( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php' ) ) {
	include_once( dirname( __FILE__ ) . DIRECTORY_SEPARATOR . 'vendor' . DIRECTORY_SEPARATOR . 'autoload.php' );
}
加载依赖
对于不通过Composer自动加载的依赖或插件,您需要通过以下两种方式之一加载依赖。
do_action( 'wp_load_dependency', 'some-plugin-name', 'main-plugin-file.php');
或
if (function_exists('wp_load_dependency')) {
	 wp_load_dependency('some-plugin-name', 'main-plugin-file.php');
}
前者的基于动作的加载更受欢迎,因为它为未来的迭代提供了更大的灵活性。