分類法の紹介
分類法が何であり、何をするのかを理解するためには、分類法の紹介をお読みください。
カスタム分類法
分類システムとして、「カテゴリー」と「タグ」はあまり構造化されていないため、開発者が独自のものを作成することが有益かもしれません。
WordPressは開発者がカスタム分類法を作成することを許可しています。カスタム分類法は、明確な命名システムを作成し、裏側で予測可能な方法でアクセスできるようにしたい場合に便利です。
なぜカスタム分類法を使用するのか?
「カテゴリーやタグで整理できるのに、なぜカスタム分類法を作成する必要があるのか?」と尋ねるかもしれません。
では、例を使ってみましょう。クライアントがシェフで、彼女のオリジナルレシピを特集するウェブサイトを作成してほしいとします。
ウェブサイトを整理する一つの方法は、「レシピ」というカスタム投稿タイプを作成して彼女のレシピを保存することです。次に、「コース」という分類法を作成して「前菜」と「デザート」を分け、最後に「材料」という分類法を作成して「鶏肉」と「チョコレート」料理を分けます。
これらのグループは、カテゴリーやタグを使用して定義することも可能です。「コース」カテゴリーに「前菜」と「デザート」のサブカテゴリーを持ち、「材料」カテゴリーに各材料のサブカテゴリーを持つことができます。
カスタム分類法を使用する主な利点は、「コース」と「材料」をカテゴリーやタグとは独立して参照できることです。管理エリアに独自のメニューも表示されます。
さらに、カスタム分類法を作成することで、クライアントの生活を楽にし、データの挿入プロセスを彼らのビジネスの性質に直感的にするカスタムインターフェースを構築できます。
これらのカスタム分類法とインターフェースがプラグイン内に実装されていると想像してみてください。あなたは、任意のWordPressウェブサイトで再利用できる独自のレシピプラグインを構築したことになります。
例:コース分類法
以下の例では、デフォルトのpost
投稿タイプにカスタム分類法「コース」を追加するプラグインを作成する方法を示します。カスタム分類法を追加するコードは独自のプラグインにする必要はなく、テーマや既存のプラグインの一部として含めることもできます。
独自のプラグインを作成する前に、プラグインの基本の章を必ずお読みください。
ステップ1:始める前に
投稿 > 新規追加ページに移動します。カテゴリーとタグしかないことに気付くでしょう。
ステップ2:新しいプラグインの作成
``````bash
/*
* Plugin Name: Course Taxonomy
* Description: A short example showing how to add a taxonomy called Course.
* Version: 1.0
* Author: developer.wordpress.org
* Author URI: https://codex.wordpress.org/User:Aternus
*/
function wporg_register_taxonomy_course() {
$labels = array(
'name' => _x( 'Courses', 'taxonomy general name' ),
'singular_name' => _x( 'Course', 'taxonomy singular name' ),
'search_items' => __( 'Search Courses' ),
'all_items' => __( 'All Courses' ),
'parent_item' => __( 'Parent Course' ),
'parent_item_colon' => __( 'Parent Course:' ),
'edit_item' => __( 'Edit Course' ),
'update_item' => __( 'Update Course' ),
'add_new_item' => __( 'Add New Course' ),
'new_item_name' => __( 'New Course Name' ),
'menu_name' => __( 'Course' ),
);
$args = array(
'hierarchical' => true, // make it hierarchical (like categories)
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => [ 'slug' => 'course' ],
);
register_taxonomy( 'course', [ 'post' ], $args );
}
add_action( 'init', 'wporg_register_taxonomy_course' );
`
ステップ3:結果の確認
プラグインを有効化し、投稿 > 新規追加に移動します。「コース」分類法の新しいメタボックスが表示されるはずです。
コードの内訳
以下の議論では、上記で使用されたコードを分解し、関数とパラメータについて説明します。
関数wporg_register_taxonomy_course
は、カスタム分類法を登録するために必要なすべてのステップを含んでいます。
$labels
配列は、カスタム分類法のラベルを保持します。
これらのラベルは、管理エリアで分類法に関するさまざまな情報を表示するために使用されます。
$args
配列は、カスタム分類法を作成する際に使用される設定オプションを保持します。
関数register_taxonomy()は、post
投稿タイプのためにcourse
という識別子を持つ新しい分類法を作成し、$args
配列を設定に使用します。
関数add_action()は、wporg_register_taxonomy_course
関数の実行をinit
アクションフックに結びつけます。
$args
$args配列はカスタム分類法の重要な設定を保持し、WordPressに分類法がどのように機能すべきかを指示します。
受け入れられるパラメータの完全なリストとそれぞれの機能については、register_taxonomy()関数を参照してください。
まとめ
私たちのコース分類法の例では、WordPressは自動的にcourse
分類法のアーカイブページと子ページを作成します。
アーカイブページは/course/
にあり、子ページは用語のスラッグ(/course/%%term-slug%%/
)を使用してその下に生成されます。
分類法の使用
WordPressには、カスタム分類法およびその中の用語と対話するための多くの関数があります。
以下はそのいくつかの例です:
the_terms
:分類法引数を取り、用語をリストとしてレンダリングします。wp_tag_cloud
:分類法引数を取り、用語のタグクラウドをレンダリングします。is_taxonomy
:指定された分類法が存在するかどうかを判断することを可能にします。