recherche

Maison  >  Questions et réponses  >  le corps du texte

Le shortcode personnalisé pour les termes de taxonomie des produits enfants et petits-enfants ne fonctionne pas comme prévu

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 :

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

/**

 * 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粉940538947P粉940538947358 Il y a quelques jours779

répondre à tous(1)je répondrai

  • P粉141455512

    P粉1414555122024-03-21 09:49:17

    J'ai réussi à le faire fonctionner ! Voici le code fonctionnel du shortcode [brandname] :

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    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);

    }

    }

    répondre
    0
  • Annulerrépondre