web-dev-qa-db-fra.com

Comment puis-je afficher les taxonomies parent et enfant dans les menus déroulants séparés?

La condition est que si j'ai un État taxonomique qui est le parent et il a un enfant sous-taxonomies ils sont les villes, Besoin d'afficher l'état sous forme de liste déroulante, lorsque je sélectionne la taxe d'état particulière je dois afficher l'enfant correspondant villes de la taxe d'état dans la deuxième liste déroulante ..... aimablement m'aider ..

J'ai trouvé la solution au problème ci-dessus, mais cela fonctionne partiellement ........ toute personne ayant une solution m'aidera avec bonté à m'aider ....

Ajoutez le code ci-dessous en haut de la page du modèle après get_header (), comme vous pouvez le constater, j’ai ajouté une taxonomie personnalisée "état" dans wp_dropdown_categories ....

<?php get_header(); ?>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js" ></script>
<script type="text/javascript">
$(function()
{
$('#main_cat').change(function()
{
    var $mainCat=$('#main_cat').val();

    // call ajax
    $("#sub_cat").empty();
    $.ajax
    (
        {
            url:"<?php bloginfo('wpurl'); ?>/wp-admin/admin-ajax.php",     
            type:'POST',
            data:'action=my_special_ajax_call&main_catid=' + $mainCat,

            success:function(results)
            {
                //  alert(results);
                $("#sub_cat").removeAttr("disabled");       
                $("#sub_cat").append(results);  
            }
        }
    );                                    
});
});               
<style type="text/css">
#content{width:auto; height:400px; margin:50px;}
</style>
<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&taxonomy=state');
?>
<select name="sub_cat" id="sub_cat" disabled="disabled"></select>
</div>
<?php
get_footer();
?>

Ajoutez le code ci-dessous dans le fichier functions.php ........

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">Sub Categories</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.

Alors maintenant, c'est ma structure ....

Etat1

  • CT1-1
  • CT2-1
  • CT3-1

Etat2

  • CT1-2
  • CT2-2
  • CT3-2

Etat3

  • CT1-3
  • CT2-3
  • CT3-3

je suis capable d’afficher les taxonomies parentes lorsque je sélectionne la taxonomie parente. La deuxième goutte est activée, mais elle ne renseigne pas les éléments enfants, sauf que la sortie statique "Sélection" apparaît. Je ne suis pas un pro si gentiment nu avec moi, quelqu'un peut-il bien vouloir résoudre ce problème

2
Solomon Henry

Bonjour tout le monde, qui rencontrons des difficultés pour afficher les taxonomies parent et enfant dans une liste déroulante, j'ai trouvé la solution au problème ci-dessus ......

éditez le code dans le fichier functions.php,

avant le code était

$categories=  get_categories('child_of='.$_POST['main_catid'].'hide_empty=0');

maintenant, éditez le code, comme ça ...

$categories=  get_categories('child_of='.$_POST['main_catid'].'&hide_empty=0'.'&taxonomy=state');

et cela fonctionne si bien, essayez-le à coup sûr ...... tout ce que j'ai fait c'est de concaténer la taxonomie, c'est tout

a bientôt tout le monde, bon codage ..... :)

2
Solomon Henry