最も強力なオープンソースのブログおよびコンテンツ管理システムの1つであるWordPressは、インターウェブの主要なチャンクを強化するために使用されています。すべてのウェブサイトの最大4分の1がWordPressを実行しており、需要が不足することはありません。 WordPress開発サービス 。
他の多くのCMSとは異なり、WordPressはその柔軟性とカスタマイズ性で多くの人に愛されています。 WordPressのコア機能の1つである分類法を使用すると、必要な方法でコンテンツを整理できます。いくつかのデフォルトの分類法が組み込まれていますが、WordPressでは必要な数のカスタム分類法を追加できます。
ただし、分類法を希望どおりに動作させるには、文書化されていないアプローチをいじる必要がある場合があります。
この記事では、WordPressでタグよりもカテゴリのように動作する排他的なカスタム分類法を定義して、すぐに使用できるよりもはるかに厳密に投稿を分類できるようにする方法を学習します。
ビジュアルデザインの要素と原則
WordPressコーデックスによると:
分類法は、物事をグループ化する方法です。
たとえば、さまざまな種類の果物の束をさまざまな特性に従ってグループ化し、それらのグループに名前を割り当てることができます。
WordPressでは、分類法を使用して、投稿、ページ、さらにはカスタム投稿タイプをさまざまなグループにグループ化します。
分類法のさまざまなグループの名前は、 条項 。たとえば、果物と、その色に基づいて果物をグループ化する方法を考えてみましょう。この場合、異なる色の名前が用語になります。
デフォルトでは、WordPressには4つの分類法が組み込まれています。 カテゴリー 、 鬼ごっこ 、 リンクカテゴリ 、および 投稿フォーマット 。これらのデフォルトの分類法について詳しく知ることができます ここに 。
これらの組み込みの分類法の中で、カテゴリとタグは非常に似ていますが、重要な違いが1つあります。カテゴリは排他的な分類法です(つまり、投稿ごとに最大1つのカテゴリを選択できます)が、各投稿には複数のタグを割り当てることができます。
さらに、カテゴリは通常事前定義されていますが、タグは必要に応じて定義できます。
register_taxonomy()
を使用してカスタム分類法を定義できます関数。あなたは機能についてもっと学ぶことができます ここに 。
この関数がどのように機能するかを確認するために、風景の写真を含む投稿のカスタム分類を定義しましょう。
外国為替リスクの種類
function view_init() { register_taxonomy( 'view', 'post', array( 'label' => __( 'View' ), 'capabilities' => array( 'assign_terms' => 'edit_guides', 'edit_terms' => 'publish_guides' ) ) ); } add_action( 'init', 'view_init' );
上記のスニペットでは、と呼ばれる投稿の新しい分類法を定義しています 見る 。
この分類法は、写真に存在するビューの種類または性質(山、湖、森など)に基づいて写真を分類するために使用されていると考えることができます。
いつものように、このカテゴリの特定の用語に属する投稿は下に表示されます / view / {view_name} 。
上記のスニペットの機能行はオプションです。これがないと、WordPressのデフォルト機能は投稿と同じユーザーになります。上記のように、これにより、カスタムの「edit_guides」機能を持つすべてのユーザーが分類を投稿に割り当て、カスタムの「publish_guides」機能を持つすべてのユーザーが新しい分類アイテムを作成できるようになります。
公式ドキュメントによると、定義できる機能は4つあります。
分類機能には、
assignterms
、editterms
、manageterms
が含まれます。 (管理ナビゲーションに分類法を表示します)およびdeleteterms
。
コード内で、wp_set_object_terms()
を使用できます分類法を使用してオブジェクトに用語を追加する関数。 the_terms()
を使用して既存の用語を一覧表示できます関数。さらに、wp_tag_cloud()
を使用できますカスタム分類法の用語のクラウドを生成する関数。これらの機能について詳しく知ることができます ここに 。
UI側では、WordPressはすべての分類法の投稿に新しいメタボックスを作成します。メタボックスは、1つ以上の用語を投稿にリンクできる[タグ]メタボックスに似ています。これはWordPressがデフォルトで行うことであり、これは分類法を排他的にすることで変更できることです。カスタム分類法をカテゴリ分類法のように動作させます。
register_taxonomy()
を使用してカスタム分類法を作成する場合メソッドでは、WordPressは複数のアイテムを選択したメタボックスを投稿編集ページに追加します。
このメタボックスを使用すると、ユーザーは既存の(すでに使用されている)用語をいくつでも選択でき、テキストボックスを使用して新しい用語を追加することもできます。
各投稿が事前定義されたカテゴリのセットから最大で1つのカテゴリに属する、カテゴリのような分類法を作成するには、WordPressを少し調整することで作成できます。
各ステップを見てみましょう。
shazamどのように機能しますか
このために、show_in_quick_edit
を設定する必要がありますおよびmeta_box_cb
false
へのオプションregister_taxonomy
を呼び出すとき。
最初のオプションはクイック/バルク編集パネルで分類法を非表示にし、2番目のオプションは投稿編集ページで分類法を非表示にします。
register_taxonomy( 'custom_taxonomy', 'post', array( 'labels' => array( 'name' => 'Custom Exclusive Taxonomy' ), 'show_in_quick_edit' => false, 'meta_box_cb' => false ));
デフォルトのメタボックスが非表示になっている場合、分類法管理ページを使用して、分類法の使用可能な用語のセットに項目を追加できます。
カスタムメタボックスを作成するには、add_meta_boxes
を使用できます。 WordPressフック。あなたはフックについてもっと学ぶことができます ここに 。
add_action('add_meta_boxes', 'add_custom_meta_box'); function add_custom_meta_box(){ add_meta_box( 'taxonomy_box', __('Custom Exclusive Taxonomy'), 'fill_custom_meta_box_content', 'post' ,'side'); }
add_meta_box
と呼びます次の引数を持つメソッド:
taxonomy_box
–メタボックスのID__('Custom Exclusive Taxonomy')
–メタボックスのタイトルfill_custom_meta_box_content
–メタボックスの内容を入力するために使用される関数post
–これは、メタボックスが編集後のページに表示される必要があることを示します。side
–これはメタボックスを挿入する場所を示します。taxonomy_box
を指定した方法に注目してくださいIDとして。ただし、ボックスに何を入れるかを定義できるのは、3番目のパラメーターの関数です。
fill_custom_meta_box_content
を実装します関数:
'custom_taxonomy', 'hide_empty' => false // Retrieve all terms )); // We assume that there is a single category $currentTaxonomyValue = get_the_terms($post->ID, 'custom_taxonomy')[0]; ?> Choose taxonomy value
製品の価格弾力性を知ることで、エコノミストは次のことが可能になります。
term_id) echo 'checked'; ?>>
ここでは、最初に分類法のすべての用語(つまり、既存の値)を取得します。これらを使用して、ラジオボタンコントロールのリストを表示します。
次に、get_the_terms()
を使用して現在選択されている分類用語を取得します機能—それぞれのラジオボタンを選択するために必要です。
この関数は配列を返すことに注意してください。これは、デフォルトで、投稿に任意の数の用語を関連付けることができるためです。私たちの仮定では、投稿には最大で1つの項があるため、最初の配列要素にアクセスします。 (配列が空の場合は問題ありません。現在の値としてnull
が取得され、ラジオボタンは選択されません。)
HTML発行コードはcustom_taxonomy
を使用しますラジオボタンの名前およびそれらの値としての対応する用語IDとして。ラジオボタンID属性は、ラベルタグへの接続に使用されます。その結果、次のカスタムメタボックスが得られます。

投稿を保存するときに分類値を保存する
最後に、投稿を保存するときに分類値を保持する必要があります。これには、save_post
を使用できます針:
add_action('save_post', 'save_custom_taxonomy'); function save_custom_taxonomy($post_id){ if ( isset( $_REQUEST['custom_taxonomy'] ) ) wp_set_object_terms($post_id, (int)sanitize_text_field( $_POST['custom_taxonomy'] ), 'custom_taxonomy'); }
以上です!完了です。
テスト可能なコードの書き方
これで、組み込みのカテゴリ分類法のように動作するカスタム分類法を定義する方法がわかりました。
注:WordPressは 機能リクエスト カスタム分類法の排他性を簡単に切り替えることができます。しかし、チケットはしばらくの間あまり活動していません。
要約
タクソノミーは、WordPressの非常に強力で便利な機能です。箱から出して、投稿を厳密に分類する機能はありませんが、WordPressのほとんどすべての場合と同様に、分類法と関連機能は非常にカスタマイズ可能です。これにより、このしばしば必要な能力をいくつかのステップで追加することができます。
ここで紹介するアプローチを使用して、分類用語を選択するための編集後のページにさらにカスタマイズされたUIを作成することもできます。
排他的なカスタム分類法の定義に関するこのクイックチュートリアルがお役に立てば幸いです。
基本を理解する
WordPressの分類法とは何ですか?
WordPressでは、分類法は、共通の特性を持つさまざまな用語で投稿とページをグループ化する方法です。