複数のカスタム分類法(item_category_A
、item_category_B
など)を含むカスタム投稿タイプ(item
)があります。現在のitem
のカスタム分類法の用語をitem_category_A
から取得し、それらをクリック可能にします。私のコードは正しい用語を検索しますが、get_term_link()
を使用するとsitename.com/item_category_B/category_A_term_slug
のようにURLが検索されます。何がおかしいのですか?私のコードはこのようになります:
function get_item_category_A(){
$item_cat_A = get_the_terms(get_the_ID,'item_category_A');
echo '<a href="' . esc_url(get_term_link($item_cat_A[0]->slug,$item_cat_A[0]->taxonomy)).'">'.esc_html($item_cat_A[0]->name).'</a>';
}
それでも、この関数を実行すると、不正確な分類法(sitename.com/item_category_B/category_A_term_slug
)内の正しい用語を指すように、URLが返されます。
WordPressでは、register_taxonomy()
関数に渡されるrewrite
引数配列を使用して、デフォルトのURL書き換え動作(/ slug/term)をカスタマイズできます。
この配列のslug
キーまたはhierarchical
キーの値を定義することで、デフォルトのURL構造をニーズに合わせて変更できます。予期しない結果が返されるように変更することもできます。
複数のタクソノミーを作成する場合、1つの税に対してラベルとパラメーターの配列をコピーして貼り付けることは簡単で、その後の使用のために詳細の一部を更新する必要性を見逃しています。
WPコーデックス参照: https://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments
Miloによる階層的分類法の説明: 階層的分類法のための階層的パーマリンクを有効にする方法