Le shortcode personnalisé pour les termes de taxonomie des produits enfants et petits-enfants ne fonctionne pas comme prévu
P粉940538947
P粉940538947 2024-03-20 11:59:26
0
1
625

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粉940538947
P粉940538947

répondre à tous(1)
P粉141455512

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);
}
}
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!