Afficher la sous-catégorie Wordpress dans la liste déroulante en fonction de la catégorie parent sélectionnée

TOH.

J'essaie d'afficher les catégories parentes dans une liste déroulante et en fonction des catégories parentes sélectionnées, leurs sous-catégories doivent apparaître dans une liste déroulante distincte via un appel ajax.

J'ai fait beaucoup de recherches et je suis tombé sur l'article suivant qui correspond à 100 % à ce dont j'ai besoin : https://1stwebdesigner.com/implement-ajax-wordpress-themes/

Je l'ai suivi correctement mais pour une raison quelconque, la liste déroulante des sous-catégories est toujours désactivée.

Mon objectif final est d'avoir les 2 listes déroulantes avec un bouton d'envoi et de les faire agir comme un formulaire de recherche, d'afficher les messages de sous-catégorie sélectionnés sur une page séparée, c'était ma première étape pour y arriver mais sans succès.

J'ai essayé de changer le javascript $ en jQuery car cela donnait une erreur la première fois que je l'utilisais mais actuellement aucune erreur sur la page.

<!-- Dropdown select box & javascript -->
<div id="content">
<?php
wp_dropdown_categories('show_count=0&selected=-1&hierarchical=1&depth=1&hide_empty=0&exclude=1&show_option_none=Main Categories&name=main_cat');
?>
<select name="sub_cat" id="sub_cat" disabled="disabled"></select>

<script type="text/javascript">
    jQuery(function() {
      jQuery('#main_cat').change(function() {
        var $mainCat = jQuery('#main_cat').val();

        // call ajax
        jQuery("#sub_cat").empty();
        jQuery.ajax({
          url: "/wp-admin/admin-ajax.php",
          type: 'POST',
          data: 'action=my_special_action&main_catid=' + $mainCat,

          success: function(results) {
            //  alert(results);
            jQuery("#sub_cat").removeAttr("disabled");
            jQuery("#sub_cat").append(results);
          }
        });
      });
    });
</script>

</div>

<!-- Ajax call in function.php -->

add_action('wp_ajax_my_special_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_special_action', 'my_action_callback');


function implement_ajax() {
if(isset($_POST['main_catid']))
            {
            $categories=  get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0');
              foreach ($categories as $cat) {
                $option .= '<option value="'.$cat->term_id.'">';
                $option .= $cat->cat_name;
                $option .= ' ('.$cat->category_count.')';
                $option .= '</option>';
              }

              echo '<option value="-1" selected="selected">Scegli...</option>'.$option;
            die();
            } // end if
}
add_action('wp_ajax_my_special_ajax_call', 'implement_ajax');
add_action('wp_ajax_nopriv_my_special_ajax_call', 'implement_ajax');//for users that are not logged in.

Alex Mc Cain

Votre problème est dans "Ajax call in function.php", vous n'avez pas accroché la bonne fonction avec votre action. Essayez le code ci-dessous

<!-- Ajax call in function.php -->
add_action('wp_ajax_my_special_action', 'my_action_callback');
add_action('wp_ajax_nopriv_my_special_action', 'my_action_callback');
function my_action_callback() {
    if(isset($_POST['main_catid'])) {
        $categories = get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0');
        foreach ($categories as $cat) {
            $option .= '<option value="'.$cat->term_id.'">';
            $option .= $cat->cat_name;
            $option .= ' ('.$cat->category_count.')';
            $option .= '</option>';
        }
        echo '<option value="-1" selected="selected">Scegli...</option>'.$option;
        die();
    } // end if
}

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

TOP liste

  1. 1

    Créer un dictionnaire à partir d'une liste de clés et de plusieurs listes de valeurs en Python

  2. 2

    Spring Reactive: java.io.IOException: Une connexion établie a été abandonnée par le logiciel de votre machine hôte, lorsque je ferme la connexion

  3. 3

    Créer un arbre binaire à partir d'une liste de listes en Python

  4. 4

    Comment obtenir l'image actuelle dans un flux en direct avec python et opencv ?

  5. 5

    Comment puis-je ajouter une entrée utilisateur à une liste de contrôle, puis la placer dans une étiquette?

  6. 6

    Comment séparer les cartes qui se chevauchent les unes des autres en utilisant python opencv?

  7. 7

    how to convert the type of each element in a list to a list in python

  8. 8

    impossible de charger le fichier ou l'assembly 'microsoft.sqlserver.management.sdk.sfc version = 11.0.0.0

  9. 9

    Définition de la fonction de programmation Visual Studio C

  10. 10

    La méthode GET n'est pas prise en charge pour cette route. Méthodes prises en charge : POST

  11. 11

    impossible d'ouvrir un nouvel onglet dans react, ajoute localhost: 3000 sur le lien?

  12. 12

    Comment trouver efficacement les valeurs min et max des variables dans ce système de contraintes?

  13. 13

    comment créer un champ de recherche dans gridview sans utiliser le modèle de recherche

  14. 14

    Trouver l'intersection et l'union de deux rectangles

  15. 15

    Détection d'affiche dans OpenCV?

  16. 16

    Comment changer la couleur de la police dans R?

  17. 17

    comment supprimer "compte de connexion google" à des fins de développement - actions sur google

  18. 18

    comment le contrôle de tableau javascript devrait-il être

  19. 19

    Référencement des assemblys de structure .net 4.7 dans la solution .net core 2

  20. 20

    J'ai besoin de savoir si ces deux phrases sont les mêmes en programmation

  21. 21

    SignalR cesse de fonctionner après un certain temps

chaudétiquette

Archive