web-dev-qa-db-ja.com

get_term_link()が誤ったURLを返す

複数のカスタム分類法(item_category_Aitem_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が返されます。

1
galingong

WordPressでは、register_taxonomy()関数に渡されるrewrite引数配列を使用して、デフォルトのURL書き換え動作(/ slug/term)をカスタマイズできます。

この配列のslugキーまたはhierarchicalキーの値を定義することで、デフォルトのURL構造をニーズに合わせて変更できます。予期しない結果が返されるように変更することもできます。

複数のタクソノミーを作成する場合、1つの税に対してラベルとパラメーターの配列をコピーして貼り付けることは簡単で、その後の使用のために詳細の一部を更新する必要性を見逃しています。

WPコーデックス参照: https://codex.wordpress.org/Function_Reference/register_taxonomy#Arguments

Miloによる階層的分類法の説明: 階層的分類法のための階層的パーマリンクを有効にする方法

1
jdm2112