Maison > Questions et réponses > le corps du texte
J'ai utilisé 2 codes courts [Nom de marque] et [Nom du produit] pour afficher les termes de sous-catégorie et les termes de catégorie de petits-enfants sur le modèle unique du produit.
Exemple 1 : Smartphone > Apple > iPhone 14
Exemple 2 : Tablettes > Apple > iPad Pro 12,9 pouces (5e génération)
Exemple 1 shortcode fonctionne très bien Exemple 2 Shortcode Aucun, les deux shortcodes affichent le terme taxonomique des petits-enfants.
Code :
/** * Brandname for Product Single Page shortcode */ function child_category_shortcode($atts) { global $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { foreach ($product_terms as $term) { if ($term->parent != 0) { return $term->name; } } } } add_shortcode('brandname', 'child_category_shortcode'); /** * Productname for Product Single Page shortcode */ function grandchild_category_shortcode($atts) { global $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { foreach ($product_terms as $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) { return $term->name; } } } } } add_shortcode('productname', 'grandchild_category_shortcode');
J'ai essayé de sélectionner uniquement le petit-enfant du produit, mais cela n'a rien fait.
P粉1414555122024-03-21 09:49:17
J'ai réussi à le faire fonctionner ! Voici le code fonctionnel du shortcode [brandname] :
function child_category_shortcode($atts) { global $post; $product_terms = get_the_terms($post->ID, 'product_cat'); if (!empty($product_terms)) { $child_terms = array(); foreach ($product_terms as $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); } }