カスタム分類法を作成する方法

公開: 2016-09-07

これは、カスタム投稿タイプ(CPT)のトピックに関する3部構成のシリーズの2番目の記事です。 他の2つの記事で説明されているトピックは次のとおりです。

  • カスタム投稿タイプとその作成方法
  • カスタム投稿タイプの表示–テンプレートとクエリ

このブログ投稿では、カスタム分類法を作成する方法と、それをカスタム投稿タイプに接続する方法について説明します。

カスタム分類法とは何ですか?

まず、分類法とは何ですか? 私は公式のWordPress定義が好きです:分類法は物事をグループ化する方法です。

WordPressには、カテゴリ、タグ、リンクカテゴリ、投稿形式の4つのデフォルトの分類法があります。 間違いなく、4つの中で最も使用されているのはカテゴリとタグです。 カテゴリ分類法を使用すると、投稿を論理カテゴリにグループ化して、自分で定義することができます。 タグの分類法は非常に似ていますが、より自由に使用できます。 分類法の単一のグループは用語と呼ばれます。 各分類法には「インデックス」ページもあり、同じ用語のすべての投稿が表示されます(これらのページのURLは「分類法/用語」のようになります)。

つまり、カスタム分類法はその名前が示すとおりであり、独自のカスタム投稿グループ(またはカスタム投稿タイプ)です。 カスタム投稿タイプとして書評がある場合、カスタム分類法の良い例は本のジャンルです。

記憶をリフレッシュするためだけに:カスタム投稿タイプに関する前回の記事では、Shakaテーマにお客様の声のCPTの例を使用したので、ここでも引き続き使用します。

そのため、お客様の声のカスタム投稿タイプがあります。 どのようなカスタム分類法が必要ですか? このユースケースにはどのグループが意味がありますか? 紹介しているサービスに基づいて、お客様の声をグループ化できます。 したがって、サービス(サーフィン、キッティング、ダイビング)のカスタム分類を行うことができます。 別のカスタム分類法は、ユーザーがこのサービスを体験した場所などです。

考えられる論理グループごとにカスタム分類法を作成できます。

カスタム分類法をどのように作成できますか?

カスタム投稿タイプと同様に、カスタム分類法を登録する方法は2つあります。 プラグインを使用して作成することも、PHPコードを少し書くこともできます。

プラグインまたはコードを使用して実行する理由と使用例はCPTの場合と同じなので、最初の記事で確認してください。

ここでは、カスタム分類法を作成する方法と、それをカスタム投稿タイプに接続する方法を見ていきます。

プラグインを使用してカスタム分類を作成する–簡単な方法

前の記事のCPTで行ったように、カスタム投稿タイプUIプラグインを使用して、カスタム分類法を登録します。

  1. wp-adminダッシュボードからカスタム投稿タイプUIプラグインをインストールしてアクティブ化します。
  2. プラグインをアクティブ化すると、CPTUI管理メニュー項目が使用可能になります。 CPTUI->分類法の追加/編集に移動します
  3. 分類法のスラッグ、複数形、単数形の名前を入力してから、この新しく作成されたカスタム分類法を添付する投稿タイプを選択する必要があります(他のデフォルト設定でも問題ありません)。 この例では、カスタム分類法にtestimonial_serviceという名前を付け、前の記事で登録したお客様の声のカスタム投稿タイプに添付しました。 追加-分類法
  4. 新しいお客様の声のカスタム投稿タイプを作成するための画面を見ると、右側にお客様の声サービスのメタボックスが表示され、左側にサブメニュー項目も表示されます。 追加-新しい紹介文
  5. これで、参照するサービスに基づいて紹介文をグループ化する新しいサービスを追加できるようになりました。

カスタム分類法を手動で作成する–コーディングが必要

はい、タイトルにはコーディングが含まれていると書かれていますが、実際にはそうではありません

WPコードジェネレーターを使用して、カスタム分類コードを生成できます。 上部のタブをクリックして、カスタム分類の詳細を入力するだけです。 ジェネレータは、有効なカスタム分類登録コードを出力します。

 // Register Custom Taxonomy function custom_taxonomy_testimonial_service() { $labels = array( 'name' => _x( 'Testimonial Services', 'Taxonomy General Name', 'text_domain' ), 'singular_name' => _x( 'Testimonial Service', 'Taxonomy Singular Name', 'text_domain' ), 'menu_name' => __( 'Testimonial Services', 'text_domain' ), 'all_items' => __( 'All Items', 'text_domain' ), 'parent_item' => __( 'Parent Item', 'text_domain' ), 'parent_item_colon' => __( 'Parent Item:', 'text_domain' ), 'new_item_name' => __( 'New Item Name', 'text_domain' ), 'add_new_item' => __( 'Add New Item', 'text_domain' ), 'edit_item' => __( 'Edit Item', 'text_domain' ), 'update_item' => __( 'Update Item', 'text_domain' ), 'view_item' => __( 'View Item', 'text_domain' ), 'separate_items_with_commas' => __( 'Separate items with commas', 'text_domain' ), 'add_or_remove_items' => __( 'Add or remove items', 'text_domain' ), 'choose_from_most_used' => __( 'Choose from the most used', 'text_domain' ), 'popular_items' => __( 'Popular Items', 'text_domain' ), 'search_items' => __( 'Search Items', 'text_domain' ), 'not_found' => __( 'Not Found', 'text_domain' ), 'no_terms' => __( 'No items', 'text_domain' ), 'items_list' => __( 'Items list', 'text_domain' ), 'items_list_navigation' => __( 'Items list navigation', 'text_domain' ), ); $args = array( 'labels' => $labels, 'hierarchical' => false, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' => true, 'show_tagcloud' => true, ); register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args ); } add_action( 'init', 'custom_taxonomy_testimonial_service', 0 );

このコードは、新しく作成されたプラグインまたはテーマのfunctions.phpファイルに貼り付けることができます。 この例の方が便利なので、コードをfunctions.phpファイルに直接貼り付けました。 上記のプラグイン設定のスクリーンショットと同様に、お客様の声のサービスサブメニュー項目がお客様の声の管理ダッシュボードメニューの下に表示され、メタボックスも表示されます。

カスタム分類法の手動登録が機能しているので、コードを分析して、それが何をするのかを正確に見てみましょう。 コード構造は、最初の記事のカスタム投稿タイプ登録と非常に似ていますが、いくつかの設定と関数呼び出しが異なります。

  • カスタム分類法を登録するために、 custom_taxonomy_testimonial_service関数をinitアクションにフックします。
  • 関数内のコードの最初のブロックはラベルの配列であり、カスタム分類法を作成/編集するときに使用される単語を変更できます。 ヒント:エスケープする国際化関数を使用することをお勧めします。 したがって、 _x()__() )の代わりに、 esc_html_x()esc_html__()を使用します。
  • 2番目のブロックは、カスタム分類法の引数/設定の配列です。 WPの公式ドキュメントを見て、設定できる引数を確認できます。
  • register_taxonomy( 'testimonial_service', array( 'testimonials' ), $args );使用します。 呼び出し、 $args引数を使用してお客様のtestimonialsのカスタム投稿タイプに「アタッチ」するお客様のtestimonial_serviceのカスタム分類を登録します。

カスタム投稿タイプとカスタム分類法が登録されたので、WordPressサイトに表示するだけです。 これは、カスタム投稿タイプに関する次の最後のブログ投稿のトピックになります。