martinsluters / wpregistrars
一个允许批量注册WordPress文章类型和分类的库。
Requires
- php: ^7.4 || ^8.0
- doctrine/inflector: ^2.0
Requires (Dev)
- 10up/wp_mock: 0.4.2
- automattic/phpcs-neutron-standard: ^1.7
- dealerdirect/phpcodesniffer-composer-installer: ^0.7
- friendsofphp/php-cs-fixer: ^3.5
- johnbillion/falsey-assertequals-detector: ^3
- phpcompatibility/phpcompatibility-wp: ^2
- phpunit/phpunit: ^9
- roots/wordpress: ^5.9.0
- vlucas/phpdotenv: ^5.4
- wp-coding-standards/wpcs: ^2.2
- wp-phpunit/wp-phpunit: ^5.9
- yoast/phpunit-polyfills: ^1.0
- yoast/wp-test-utils: ^1.0
This package is auto-updated.
Last update: 2024-09-29 06:25:47 UTC
README
简介
简而言之,WP Registrars是一个小巧的PHP库,允许批量注册WordPress文章类型和分类。标签使用复数形式和大写,以便加快开发速度。
最低要求
- PHP 7.4
- 支持PHP 8.0和8.1
- WordPress: 已测试至WP 5.9
安装
您可以使用Composer安装WP Registrars
composer require martinsluters/wpregistrars
使用方法
使用库相对简单,您可以使用工厂martinsluters\WPRegistrars\Factories\BulkRegistrarPostTypesFactory
和martinsluters\WPRegistrars\Factories\BulkRegistrarTaxonomiesFactory
来创建新的martinsluters\WPRegistrars\Registrars\BulkRegistrarPostTypes
和martinsluters\WPRegistrars\Registrars\BulkRegistrarTaxonomies
注册器实例。
use martinsluters\WPRegistrars\Factories\{ BulkRegistrarPostTypesFactory, BulkRegistrarTaxonomiesFactory }; ( new BulkRegistrarPostTypesFactory() ) ->withArguments( [ 'report', 'guide', 'resource' ] ) ->create() ->register(); ( new BulkRegistrarTaxonomiesFactory() ) ->withArguments( [ 'resource_type' => [ 'object_type' => [ 'resource' ] ] 'guide_language' => [ 'object_type' => [ 'guide' ] ] 'my-random-taxonomy' ] ) ->create() ->register();
注意:本文档不会涵盖在WordPress动作执行顺序中适当的位置和时间来使用库。
提示:文章类型和分类注册不应在‘init’动作之前钩入。
使用工厂构建方法
withArguments(array $arguments)
必须使用此方法来注册自定义文章类型或自定义分类。在最基本的配置中,它需要一个至少包含一个字符串类型值的索引数组。 withArguments([ 'report' ])
字符串被视为文章类型或分类键。理论上可以传递无限多个元素。
可以传递额外的注册参数。通过设置一个字符串类型的数组元素(被视为文章类型或分类键)和一个数组类型的元素值。传递给值的数组是在注册文章类型和分类时通常会传递的数组。 withArguments([ 'report' => [ 'public' => true ] ])
在注册分类时传递对象类型(s)使用以下格式 withArguments([ 'guide_language' => [ 'object_type' => [ 'guide', 'report' ] ] ])
传递给withArguments的参数覆盖传递给withDefaultRegistrationArguments的参数。
withDefaultRegistrationArguments(array $default_registration_arguments)
可以设置默认注册参数,这些参数将应用于所有文章类型或分类。传递的数组是在注册文章类型和分类时会传递的数组。
withDefaultRegistrationArguments( [ 'public' => true ] )
传递分类注册对象类型(s)时有一个例外。您可以使用以下格式与注册参数数组一起传递它们
withDefaultRegistrationArguments( [ 'object_type' => [ 'guide', 'report' ] ] )
传递给withArguments的参数覆盖传递给withDefaultRegistrationArguments的参数。
shouldAutoPluralize(bool $should_auto_pluralize_label)
默认情况下,文章类型或分类的标签将使用复数形式和大写,其中使用文章类型或分类键作为源。可以使用shouldAutoPluralize(false)
禁用此功能。如果withDefaultRegistrationArguments
或withArguments
提供了label
数组元素,则shouldAutoPluralize
没有作用。
withPluralizer(PluralizerInterface $pluralizer)
默认情况下,帖子类型和分类的标签使用英语复数形式创建,这是通过库的依赖项 Doctrine\Inflector\Inflector
实现的。可以通过使用 Doctrine\Inflector\Language
提供不同的语言来更改使用的语言。
use martinsluters\WPRegistrars\Factories\BulkRegistrarPostTypesFactory; use martinsluters\WPRegistrars\PluralizerDoctrineInflectorAdapter; use Doctrine\Inflector\{ InflectorFactory, Inflector, Language }; $doctrine_inflector_spanish = ( new InflectorFactory( Language::SPANISH ) ) ->create() ->build(); $pluralizer_spanish = new PluralizerDoctrineInflectorAdapter( $doctrine_inflector_spanish ); ( new BulkRegistrarPostTypesFactory() ) ->withPluralizer( $pluralizer_spanish ) ->withDefaultRegistrationArguments( ['public' => true] ) ->withArguments( [ 'escuela' ] ) ->create() ->register();
注意:请参阅 Doctrine\Inflector
的官方文档以查找支持的语言。
您可以使用不同的工具来创建复数形式的单词,并完全忽略 Doctrine\Inflector
。要这样做,您必须向 withPluralizer
提供一个实现 martinsluters\WPRegistrars\PluralizerInterface
的适配器。
shouldAutoCapitalize( bool $should_auto_capitalize_label )
默认情况下,帖子类型或分类的标签创建方式是使 string
中每个单词的首字母大写(如果该字符是字母),标签的来源是帖子类型或分类键。可以通过使用 shouldAutoCapitalize( false )
来禁用此功能。如果 withDefaultRegistrationArguments
或 withArguments
提供数组元素 label
,则 shouldAutoCapitalize
无效。
create()
如果可能,创建注册器实例。
注册器方法的使用
register()
注册帖子类型或分类。
许可证
本程序是自由软件;您可以自由分发和/或修改它,前提是您遵守自由软件基金会发布的 GNU 通用公共许可证的条款;许可证的第 2 版,或(根据您的选择)许可证的任何后续版本。
本程序的分发是出于希望它能有用,但不提供任何保证;甚至不保证其可销售性或适用于特定目的。有关详细信息,请参阅 GNU 通用公共许可证。