lidmo/wp-plugin-start

基于 Laravel 特性的 WP 插件启动

支持包维护!
wesleydeveloper

安装: 36

依赖: 0

建议者: 0

安全: 0

星标: 0

观察者: 0

分支: 0

开放问题: 0

类型:项目

v2.2.0 2023-12-27 13:30 UTC

This package is auto-updated.

Last update: 2024-09-27 15:01:29 UTC


README

基于 Laravel 特性的 WP 插件启动

安装

composer create-project lidmo/wp-plugin-start plugin-name

钩子

要了解插件的结构,我建议您检查 src/Hooks 目录中的默认钩子和在 src/Hooks/Kernel.php 类中的这些钩子注册。

钩子扩展了 \Lidmo\WP\Foundation\Hooks\Hook 类,其中处理名称、类型、参数和优先级。钩子后缀自动确定其类型,而命名空间确定其名称。

创建钩子

要向 wp_enqueue_scripts 添加动作,我们可以在 src/Hooks/Wp 目录中创建一个 EnqueueScriptsAction 类。

namespace PluginName\Hooks\Wp;

use Lidmo\WP\Foundation\Hooks\Hook;

class EnqueueScriptsAction extends Hook
{

    public function handle()
    {
        // your code here
    }
}

要向 wp_insert_post_data 添加过滤器,我们可以在 src/Hooks/Wp 目录中创建一个 InsertPostDataFilter 类。

namespace PluginName\Hooks\Wp;

use Lidmo\WP\Foundation\Hooks\Hook;

class InsertPostDataFilter extends Hook
{
    public function handle($attributes)
    {
        // your code here
    }
}

注册钩子

namespace PluginName\Hooks;

use Lidmo\WP\Foundation\Hooks\Kernel as HooksKernel;

class Kernel extends HooksKernel
{
    protected $hooks = [
        // Actions
        \PluginName\Hooks\Wp\EnqueueScriptsAction::class,

        // Filters
        \PluginName\Hooks\Wp\InsertPostDataFilter::class,
    ];
}

设置钩子属性

protected $name = 'hook_name'; // set hook name
protected $type = 'filter'; // set hook filter
protected $priority = 100; // set hook priority
protected $acceptedArgs = 1; // set hook args