J'essaie de changer un champ dans un widget de recherche en allant dans les fichiers php et en modifiant les fonctions wp. J'essaie actuellement de remplacer une liste déroulante par une liste déroulante par une case à cocher pour les catégories (catégorie parent au sommet et catégories enfants ci-dessous dans l'ordre alphabétique). L'affichage devrait être déroulant si possible.
Voici le code de la liste déroulante actuelle:
<?php
wp_dropdown_categories( array(
'show_option_none' => '-- '.__( 'Select a location', 'advanced-classifieds-and-directory-pro' ).' --',
'option_none_value' => $general_settings['base_location'],
'child_of' => max( 0, $general_settings['base_location'] ),
'taxonomy' => 'acadp_locations',
'name' => 'loc',
'id' => 'acadp-location-search-'.$id,
'class' => 'form-control',
'orderby' => 'name',
'selected' => isset( $_GET['loc'] ) ? (int) $_GET['loc'] : -1,
'hierarchical' => true,
'depth' => 10,
'show_count' => false,
'hide_empty' => false,
) );
?>
J'essaie d'utiliser la fonction intégrée wp_category_checklist (). Quelqu'un peut m'aider? Je serais extrêmement reconnaissant!
Merci Luke
Comme vous ne travaillez pas avec les catégories par défaut mais avec une autre taxonomie, vous ne devez pas utiliser wp_category_checklist()
. Au lieu de cela, vous devriez probablement utiliser le plus générique wp terms checklist()
. La signature de cette fonction diffère également de celle de wp_dropdown_categories()
. Et le tableau d'arguments prend des options complètement différentes.
Vous devez commencer par le code suivant, puis l’adapter en fonction de vos besoins:
require_once ABSPATH . 'wp-admin/includes/template.php';
wp_terms_checklist( 0, array(
'taxonomy' => 'acadp_locations',
) );
Je ne sais pas si wp_terms_checklist()
répondra à tous vos besoins. Vous devez peut-être écrire un Walker personnalisé (Commencez par étendre Walker_Category_Checklist()
) pour adapter le résultat à vos besoins.