hamworks / wp-taxonomy
Installs: 3 533
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- doctrine/inflector: ^2.0
Requires (Dev)
README
WordPressのカスタムタクソノミーを簡単に作成するためのライブラリです。ビルダーパターンを使用して、タクソノミーの登録、初期タームの設定、管理画面との統合を簡単に行えます。
特徴
- 初期ターム設定: タクソノミー登録時に自動でデフォルトタームを作成
- 管理画面統合: 管理カラムとドロップダウンフィルターの自動サポート
- REST API & GraphQL対応: WordPress REST APIとGraphQL(WPGraphQL)の組み込みサポート
- 日本語ラベル: 日本語対応のカスタマイズ可能なラベル
- 階層型タクソノミー: 親子関係のあるタームをサポート
インストール
Composerを使用してインストール:
composer require hamworks/wp-taxonomy
基本的な使用方法
シンプルなタクソノミーの作成
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'product-category', '商品カテゴリ', [ 'product' ] ); $builder->create();
詳細設定を含むタクソノミー
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'product-category', '商品カテゴリ', [ 'product' ] ); $builder->set_options([ 'public' => true, 'hierarchical' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, 'description' => '商品を整理するためのカテゴリ', 'has_archive' => true, 'rewrite' => [ 'slug' => 'products/category', 'with_front' => false, ], ]); $builder->create();
初期タームの設定
タクソノミー登録時にデフォルトのタームを自動作成できます:
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'product-category', '商品カテゴリ', [ 'product' ] ); // シンプルなタームを作成 $electronics = new \HAMWORKS\WP\Taxonomy\Term( '家電', 'electronics' ); $clothing = new \HAMWORKS\WP\Taxonomy\Term( '衣類', 'clothing' ); $builder->set_initial_term( $electronics ); $builder->set_initial_term( $clothing ); $builder->create();
メタデータ付きの階層型タームの作成
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'product-category', '商品カテゴリ', [ 'product' ] ); // 親カテゴリ $electronics = new \HAMWORKS\WP\Taxonomy\Term( '家電', // 名前 'electronics', // スラッグ 0, // 親(0はトップレベル) '家電製品のカテゴリ', // 説明 '', // エイリアス [ // メタデータ 'featured' => true, 'color' => '#3498db' ] ); // 子カテゴリ $smartphones = new \HAMWORKS\WP\Taxonomy\Term( 'スマートフォン', 'smartphones', 'electronics', // 親スラッグ '携帯電話とアクセサリー', '', [ 'icon' => 'smartphone' ] ); $builder->set_initial_term( $electronics ); $builder->set_initial_term( $smartphones ); $builder->create();
APIリファレンス
Builderクラス
コンストラクタ
new Builder( string $name, string $label, array|string $post_type = ['post'] )
$name
: タクソノミースラッグ(URLやデータベースで使用)※単数形で指定してください$label
: 人が読める形のタクソノミー名$post_type
: 関連付ける投稿タイプ
注意: $name
パラメータは単数形で指定してください。ライブラリ内部で自動的に複数形に変換されます(例:category
→ categories
)。
メソッド
set_options( array $args )
タクソノミー登録引数を設定。デフォルト値とマージされます。
デフォルトオプション:
[ 'show_in_rest' => true, 'show_in_graphql' => true, 'graphql_single_name' => $singular_slug, 'graphql_plural_name' => $plural_slug, 'rest_base' => $plural_slug, 'show_admin_column' => true, 'rewrite' => [ 'with_front' => false, 'slug' => $singular_slug, 'walk_dirs' => false, ], ]
set_labels( array $args )
タクソノミーラベルをカスタマイズ。日本語デフォルトとマージされます。
set_initial_term( Term $term )
タクソノミー登録時に自動作成するタームを追加。
create()
タクソノミーを登録し、初期タームを作成。
get_taxonomy()
登録された WP_Taxonomy
オブジェクトを返します。
Termクラス
コンストラクタ
new Term( string $name, string $slug = '', int|string $parent = 0, string $description = '', string $alias_of = '', array $meta = [] )
$name
: ターム表示名$slug
: タームスラッグ(空の場合は名前から自動生成)$parent
: 階層型タクソノミーの親タームIDまたはスラッグ$description
: ターム説明$alias_of
: 他のタームのエイリアス$meta
: タームメタデータのキーバリュー配列
複数の投稿タイプ
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'topic', 'トピック', [ 'post', 'page', 'custom_post_type' ] ); $builder->create();
カスタムラベル
$builder = new HAMWORKS\WP\Taxonomy\Builder( 'skill', 'スキル', [ 'employee' ] ); $builder->set_labels([ 'name' => 'スキル', 'singular_name' => 'スキル', 'search_items' => 'スキルを検索', 'popular_items' => '人気のスキル', 'all_items' => '全てのスキル', 'edit_item' => 'スキルを編集', 'update_item' => 'スキルを更新', 'add_new_item' => '新しいスキルを追加', 'new_item_name' => '新しいスキル名', 'menu_name' => 'スキル', ]); $builder->create();