johnbillion / wp-hooks
1.8.0
2024-07-15 16:47 UTC
Requires (Dev)
- erusev/parsedown: 1.8.0-beta-7
- oomphinc/composer-installers-extender: ^2
- roots/wordpress-core-installer: ^1.0.0
- roots/wordpress-full: 6.6-RC4
- wp-hooks/generator: 0.9.0
Replaces
- dev-develop
- 1.8.0
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.3.0
- 1.2.0
- 1.1.0
- 1.0.0
- 0.9.0
- 0.8.2
- 0.8.1
- 0.8.0
- 0.7.1
- 0.7.0
- 0.6.1
- 0.6.0
- 0.5.4
- 0.5.3
- 0.5.2
- 0.5.1
- 0.5.0
- 0.4.4
- 0.4.3
- 0.4.2
- 0.4.1
- 0.4.0
- 0.3.1
- 0.3.0
- 0.2.7
- 0.2.6
- 0.2.5
- 0.2.4
- 0.2.3
- 0.2.1
- 0.2.0
- 0.1.7
- 0.1.6
- 0.1.5
- 0.1.2
- 0.1.1
- 0.1.0
- dev-wp-66
- dev-master
- dev-wp64
- dev-cron-hooks
This package is auto-updated.
Last update: 2024-07-15 19:37:29 UTC
README
WordPress 核心中的所有动作和过滤器都以机器可读的 JSON 格式提供。
最后更新于 WordPress 6.6。
安装
- 作为用于 PHP 的 Composer 软件包
composer require wp-hooks/wordpress-core
- 作为用于 JavaScript 或 TypeScript 的 npm 软件包
npm install @wp-hooks/wordpress-core
PHP 中的使用
// Get hooks as JSON: $actions_json = file_get_contents( 'vendor/wp-hooks/wordpress-core/hooks/actions.json' ); $filters_json = file_get_contents( 'vendor/wp-hooks/wordpress-core/hooks/filters.json' ); // Convert hooks to PHP: $actions = json_decode( $actions_json, true )['hooks']; $filters = json_decode( $filters_json, true )['hooks']; // Search for filters matching a string: $search = 'permalink'; $results = array_filter( $filters, function( array $hook ) use ( $search ) { return ( false !== strpos( $hook['name'], $search ) ); } ); var_dump( $results );
JavaScript 中的使用
// Get hooks as array of objects: const actions = require('@wp-hooks/wordpress-core/hooks/actions.json').hooks; const filters = require('@wp-hooks/wordpress-core/hooks/filters.json').hooks; // Search for actions matching a string: const search = 'menu'; const results = actions.filter( hook => ( null !== hook.name.match( search ) ) ); console.log(results);
在 TypeScript 中导入
import { hooks as actions } from '@wp-hooks/wordpress-core/hooks/actions.json'; import { hooks as filters } from '@wp-hooks/wordpress-core/hooks/filters.json';
如果需要,也可以导入钩子组件的接口
import { Hooks, Hook, Doc, Tags, Tag } from '@wp-hooks/wordpress-core/interface';
动作、过滤器和模式
- 动作可以在 hooks/actions.json 中找到
- 过滤器可以在 hooks/filters.json 中找到
- JSON 模式可以在 hooks/schema.json 中找到
- TypeScript 接口可以在 interface/index.d.ts 中找到
我能用它做什么?
任何需要以编程方式访问可用钩子列表的东西,例如
重新生成钩子文件
将 composer.json 中的 roots/wordpress-full
版本更改为所需的 WordPress 版本,或使用 dev-main
以获取夜间版本。
安装依赖项
npm i && composer i
然后运行
composer generate
有一些脚本是用于检查数据的
- 检查一切
npm run check
- 查找缺少
@since
标记的钩子jq '.hooks[] | . as $d | .doc .tags | map(.name) | select( contains(["since"]) | not ) | $d' hooks/filters.json
jq '.hooks[] | . as $d | .doc .tags | map(.name) | select( contains(["since"]) | not ) | $d' hooks/actions.json
- 查找带有不正确数量
@param
标记的钩子(不完全准确,不确定原因)jq '.hooks[] | select( .args == ( .doc.tags | map(.name) | select( contains(["param"]) ) | length ) ) | .name' hooks/filters.json
jq '.hooks[] | select( .args == ( .doc.tags | map(.name) | select( contains(["param"]) ) | length ) ) | .name' hooks/actions.json
插件钩子文件
您希望您的最爱插件具有相同的钩子文件吗?本存储库中的钩子文件使用 wp-hooks-generator 生成。它可以为核心以及插件和主题生成钩子文件。
赞助商
我维护这个库和其他库的时间部分由以下赞助商赞助
以及所有我的GitHub上的慷慨赞助商