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');
}
前者的基于动作的加载更受欢迎,因为它为未来的迭代提供了更大的灵活性。