voceconnect/wp-dependencies

WordPress的一个composer包,用于管理插件依赖。

0.2.1 2021-04-29 18:07 UTC

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');
}

前者的基于动作的加载更受欢迎,因为它为未来的迭代提供了更大的灵活性。