2 つのショートコード [ブランド名] と [製品名] を使用して、単一の製品テンプレートにサブカテゴリの用語と孫カテゴリの用語を表示します。
例 1: スマートフォン > Apple > iPhone 14
例 2: タブレット > Apple > iPad Pro 12.9 インチ (第 5 世代)
例 1 のショートコードはうまく機能します 例 2 ショートコード なし。どちらのショートコードも孫分類用語を表示します。
コード:
/*** 製品シングルページのショートコードのブランド名*/ function child_category_shortcode($atts) { グローバル $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { foreach ($product_terms として $term) { if ($term->parent != 0) { $term->name を返します。 } } } } add_shortcode('ブランド名', 'child_category_shortcode'); /*** 製品シングルページのショートコードの製品名*/ function grandchild_category_shortcode($atts) { グローバル $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { foreach ($product_terms として $term) { $parent_id = $term->parent; if ($parent_id != 0) { $parent_term = get_term($parent_id, 'product_cat'); $grandparent_id = $parent_term->parent; if ($grandparent_id != 0) { $term->name を返します。 } } } } } add_shortcode('製品名', '孫カテゴリー_ショートコード');
製品の孫のみを選択しようとしましたが、何も起こりませんでした。
P粉1414555122024-03-21 09:49:17
無事に動作するようになりました! [ブランド名] ショートコードの動作コードは次のとおりです:
function child_category_shortcode($atts) { グローバル $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { $child_terms = 配列(); foreach ($product_terms として $term) { if ($term->parent != 0) { $parent = get_term($term->parent, 'product_cat'); if ($parent->parent == 0) { array_push($child_terms, $term->name); } } } return implode(', ', $child_terms); } }