概要
register_taxonomy関数は、WordPressでカスタムタクソノミー(分類法)を登録するために使用されます。この関数を利用することで、投稿やカスタム投稿タイプに新しい分類を追加することができ、コンテンツの整理や表示をより効果的に行うことが可能になります。以下のような機能を実装する際によく使われます。
- カスタムカテゴリの作成
- タグの追加
- 投稿タイプに対するカスタム分類の作成
- 商品やサービスの属性を categorizing する
- 複数の投稿タイプ間でのタクソノミーの共有
- ユーザー定義のフィルタリングオプションの追加
- 管理画面でのカスタムタクソノミーの表示
- SEO対策としての構造化データの追加
構文
register_taxonomy( $taxonomy, $object_type, $args );
パラメータ
$taxonomy(string) – タクソノミーの名前。$object_type(string|array) – タクソノミーを関連付けるオブジェクトの種類(例:post,page,custom_post_type)。$args(array) – タクソノミーの設定オプション。
戻り値
この関数は、成功した場合は true を返し、エラーが発生した場合は WP_Error オブジェクトを返します。
関連する関数
使用可能なバージョン
register_taxonomy関数はWordPress 2.3.0以降で使用可能です。
コアファイルパス
wp-includes/taxonomy.php
この関数のアクションでの使用可能性
| アクション | 使用可能性 |
|---|---|
| mu_plugin_loaded | |
| registered_post_type | 〇 |
| plugins_loaded | |
| wp_roles_init | |
| setup_theme | |
| after_setup_theme | |
| set_current_user | |
| init | 〇 |
| register_sidebar | |
| wp_loaded | |
| send_headers | |
| parse_query | |
| pre_get_posts | |
| wp | |
| template_redirect | |
| get_header | |
| wp_head |
サンプルコード
サンプル1: シンプルなタクソノミーの登録
function my_custom_taxonomy() {
register_taxonomy(
'genre',
'post',
array(
'label' => __( 'Genre' ),
'rewrite' => array( 'slug' => 'genre' ),
'hierarchical' => true,
)
);
}
add_action( 'init', 'my_custom_taxonomy' );
このサンプルコードは、”Genre”という名前のカスタムタクソノミーを投稿に追加します。
サンプル2: 複数の投稿タイプを関連付ける
function my_custom_taxonomy() {
register_taxonomy(
'genre',
array( 'post', 'movie' ),
array(
'label' => __( 'Genre' ),
'hierarchical' => true,
)
);
}
add_action( 'init', 'my_custom_taxonomy' );
このコードは、”Genre”タクソノミーを投稿と映画の両方に関連付けます。
サンプル3: 非階層型タクソノミーの登録
function my_custom_tag_taxonomy() {
register_taxonomy(
'topic',
'post',
array(
'label' => __( 'Topic' ),
'hierarchical' => false,
)
);
}
add_action( 'init', 'my_custom_tag_taxonomy' );
このサンプルは、階層構造を持たない”Topic”というタクソノミーを投稿に登録します。
サンプル4: タクソノミーの設定オプションをカスタマイズ
function my_custom_taxonomy() {
register_taxonomy(
'genre',
'post',
array(
'labels' => array(
'name' => __( 'Genres' ),
'singular_name' => __( 'Genre' )
),
'public' => true,
'show_admin_column' => true,
'rewrite' => array( 'slug' => 'genres' ),
)
);
}
add_action( 'init', 'my_custom_taxonomy' );
このコードは、管理画面に”Genre”タクソノミーの列を表示し、その表示名やリライトルールをカスタマイズします。
サンプル5: タクソノミーのカスタムメタボックスを追加
function add_custom_taxonomy_metabox() {
add_meta_box(
'custom_taxonomy_metabox',
__( 'Genre' ),
'custom_taxonomy_metabox_callback',
'post'
);
}
add_action( 'add_meta_boxes', 'add_custom_taxonomy_metabox' );
function custom_taxonomy_metabox_callback() {
// メタボックスの内容をここに記述
}
このサンプルは、投稿編集画面にカスタムタクソノミーのメタボックスを追加する方法を示しています。
これらのサンプルコードはすべて、WordPressにおけるタクソノミーの登録方法を示すものです。