crtl/wp-plugin-base

提供使用PHP8属性和反射API注册WordPress钩子和操作的API

1.0.5 2024-01-23 13:54 UTC

This package is auto-updated.

Last update: 2024-09-23 15:25:45 UTC


README

提供基于PHP的反射API和PHP8属性注册钩子和动作的基础类Word插件(和主题)。

要求

  • PHP >= 8.1

安装

composer require crtl/wp-plugin-base

使用

<?php

use Crtl\WpPluginBase\PluginBase;
use Crtl\WpPluginBase\Attribute\WPAction;
use Crtl\WpPluginBase\Attribute\WPFilter;

class MyPlugin extends PluginBase {

    /**
     * Registers an action by creating method in format action_{action_name}
    * @return void
     */
    public function action_wp_enqueue_scripts() {
        wp_enqueue_script(...)
    }
    
    /**
     * Registers a filter by creating method in format action_{action_name} 
     * @return false
     */
    public function filter_admin_bar() {
        return false;
    }
    
    /**
     * Register action using {@link WPAction} attribute
     * @return void
     */
    #[WPAction("action_name", 10, 0)]
    public function usingAttributes() {
    
    }

    /**
     * Register filter using {@link WPFilter} attribute
     * @return void
     */
    #[WPFilter("filter_name", 10, 0)]
    public function usingAttributes() {
    
    }

}

WPFilterWPAction属性也可以用来分别设置动作和过滤器的可选优先级和参数数量。

#[WPAction(priority: 10)]
public function action_my_action() {}