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();new Builder( string $name, string $label, array|string $post_type = ['post'] )$name: タクソノミースラッグ(URLやデータベースで使用)※単数形で指定してください$label: 人が読める形のタクソノミー名$post_type: 関連付ける投稿タイプ
注意: $nameパラメータは単数形で指定してください。ライブラリ内部で自動的に複数形に変換されます(例:category → categories)。
タクソノミー登録引数を設定。デフォルト値とマージされます。
デフォルトオプション:
[
'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,
],
]タクソノミーラベルをカスタマイズ。日本語デフォルトとマージされます。
タクソノミー登録時に自動作成するタームを追加。
タクソノミーを登録し、初期タームを作成。
登録された WP_Taxonomy オブジェクトを返します。
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();