shineunited/wordpress-hooks

管理初始化前WordPress钩子的工具。

dev-main 2023-01-17 23:21 UTC

This package is auto-updated.

Last update: 2024-09-18 02:54:10 UTC


README

License Latest Version PHP Version Main Status Release Status Develop Status

描述

管理WordPress钩子的工具。允许在WordPress初始化之前注册钩子,并提供使用PHP属性定义钩子的框架。

安装

要添加wordpress-hooks,推荐的方法是通过composer。

$ composer require shineunited/wordpress-hooks

HookManager

HookManager类提供了管理WordPress钩子的静态方法。虽然大多数函数只是简单地映射到内置的WordPress函数,但其中一些函数管理初始化前的钩子。

use ShineUnited\WordPress\Hooks\HookManager;

function callback_function($param1, $param2) {
	// code
}

// this can be used prior to initialization
HookManager::addFilter('filter-name', 'callback-function', 10, 2);

属性钩子

也可以通过使用Hook属性和HookManager::register();来定义钩子。

use ShineUnited\WordPress\Hooks\Filter;
use ShineUnited\WordPress\Hooks\HookManager;

class MyObjectHooks {

	#[Filter('lowercase')]
	public function lowercase(string $value): string {
		return strtolower($value);
	}

	#[Filter('uppercase')]
	public function uppercase(string $value): string {
		return strtoupper($value);
	}
}

$hooks = new MyObjectHooks();
HookManager::register($hooks);
// WordPress Equivalent
//   add_filter('lowercase', [$hooks, 'lowercase'], 10, 1);
//   add_filter('uppercase', [$hooks, 'uppercase'], 10, 1);

多个钩子可以应用于单个回调。

use ShineUnited\WordPress\Hooks\Action;
use ShineUnited\WordPress\Hooks\Filter;
use ShineUnited\WordPress\Hooks\HookManager;

$closure =
#[Filter('example-filter', 12)]
#[Action('example-action')]
function($value) {
	// code
};

HookManager::register($closure);
// WordPress Equivalent:
//   add_filter('example-filter', $closure, 12, 1);
//   add_filter('example-action', $closure, 10, 1);

函数参考

有关更多详细信息,请参阅我们的文档