martinsluters/wpregistrars

一个允许批量注册WordPress文章类型和分类的库。

0.1.0 2022-01-30 16:20 UTC

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\BulkRegistrarPostTypesFactorymartinsluters\WPRegistrars\Factories\BulkRegistrarTaxonomiesFactory来创建新的martinsluters\WPRegistrars\Registrars\BulkRegistrarPostTypesmartinsluters\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)禁用此功能。如果withDefaultRegistrationArgumentswithArguments提供了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 ) 来禁用此功能。如果 withDefaultRegistrationArgumentswithArguments 提供数组元素 label,则 shouldAutoCapitalize 无效。

create()

如果可能,创建注册器实例。

注册器方法的使用

register()

注册帖子类型或分类。

许可证

本程序是自由软件;您可以自由分发和/或修改它,前提是您遵守自由软件基金会发布的 GNU 通用公共许可证的条款;许可证的第 2 版,或(根据您的选择)许可证的任何后续版本。

本程序的分发是出于希望它能有用,但不提供任何保证;甚至不保证其可销售性或适用于特定目的。有关详细信息,请参阅 GNU 通用公共许可证。