johnbillion / wp-hooks-generator
0.9.0
2022-07-03 12:35 UTC
README
生成代码中WordPress动作和过滤器的JSON表示。可用于WordPress插件、主题和核心。
注意:如果您只需要钩子文件,而不想自己生成,请使用以下包
- wp-hooks/wordpress-core 用于WordPress核心
安装
composer require wp-hooks/generator
生成钩子文件
./bin/wp-hooks-generator --input=src --output=hooks
在PHP中使用生成的钩子文件
// Get hooks as JSON: $actions_json = file_get_contents( 'hooks/actions.json' ); $filters_json = file_get_contents( '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('hooks/actions.json').hooks; const filters = require('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);
忽略文件或目录
您可以通过两种方式忽略文件或目录
在命令行上
./vendor/bin/wp-hooks-generator --input=src --output=hooks --ignore-files="ignore/this,ignore/that"
在composer.json中
"extra": { "wp-hooks": { "ignore-files": [ "ignore/this", "ignore/that" ] } }
忽略钩子
您可以通过两种方式忽略钩子
在命令行上
./vendor/bin/wp-hooks-generator --input=src --output=hooks --ignore-hooks="this_hook,that_hook"
在composer.json中
"extra": { "wp-hooks": { "ignore-hooks": [ "this_hook", "that_hook" ] } }
钩子文件的TypeScript接口
钩子文件的TypeScript接口可以在 interface/index.d.ts
中找到。用法
import { Hooks, Hook, Doc, Tags, Tag } from 'hooks/index.d.ts';
钩子文件的JSON模式
钩子文件的JSON模式可以在 schema.json
中找到。