Il ya quelques jours, j'ai publié une nouvelle version majeure (la 2.3.0) de l'WordPress plugin WP Bannerize , pour l'année dernière. En plus d'avoir introduit l'utilisation de widgets (qui je l'espère, d'écrire quelque chose dans un avenir proche) ou "finalement" permis de filtrer les bannières de la classe.
Widgets dans la section J'ai trouvé la nécessité de considérer les catégories du blog afin qu'ils puissent être sélectionnés via une case à cocher contrôle! En outre, j'ai eu à voir "retrait" dans le respect de la hiérarchie parent / enfant. Ayant eu un coup d'oeil (je l'avoue rapide) aux fonctions de WordPress, il semblait qu'il y avait quelque chose déjà disponibles et documentées!
Remarque: en fait, quand nous insérons un nouveau poste dans le Wordress backend, la page propose une liste de leurs catégories en retrait avec beaucoup de cases à cocher! , solo che queste sono funzioni interne, quindi meglio evitare di usarle), ho optato per scriverne una mia personale Cependant, ne voulant pas effectuer toute ingénierie inverse pour récupérer la fonction (j'avoue ... j'ai fait et j'ai aussi trouvé, voir
wp_category_checklist()dans votrewp-admin, mais seulement que ce sont des fonctions internes, il faut donc éviter de les utiliser) J'ai décidé d'écrire mon propre
J'ai donc écrit une fonction personnelle qui affiche les catégories d'un blog dans une liste indentée ajoutant un contrôle case à cocher. Cette fonction peut être inséré dans functions.php . La fonction, en fait, a deux fonctions: principale et de service utilisé pour "itération" récursivement.
Dans la version que je me présente (WordPress utilise dans ces cas, son objet - ou plutôt de sa catégorie - Walker ) Je n'ai pas utilisé la fonction imbriquée , comme il a quelques problèmes avec la structure de widgets WordPress campatibilità, mais vous pouvez les re-s'adaptent à toutes les d'autres fins.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25e 26 27 28 29 | / ** * Retourne une liste (UL / LI) des catégories * @ Params array $ selected_cats catégories sélectionnées * * @ Return HTML * / $selected_cats = null ) { Fonction get_categories_checkboxes (selected_cats $ = null) { get_categories ( ) ; $ All_categories get_categories = (); '<ul style="margin-left:12px">' ; $ O = '<ul style="margin-left:12px">'; $all_categories as $key => $cat ) { foreach ($ all_categories as $ key => $ cat) { $cat -> parent == "0" ) $o .= __show_category ( $cat , $selected_cats ) ; if ($ cat - parent> == "0") ou __show_category $ .= ($ cat, selected_cats $); } . '</ul>' ; return $ o. '</ ul>'; } $cat_object , $selected_cats = null ) { __show_category fonction (cat_object $, $ selected_cats = null) { "" ; Vérifié $ = ""; ! is_null ( $selected_cats ) && is_array ( $selected_cats ) ) { if ( is_null (selected_cats $) & & is_array ($ selected_cats)) { ( in_array ( $cat_object -> cat_ID , $selected_cats ) ) ? 'checked="checked"' : "" ; Vérifié $ = ( in_array ? ($ cat_object -> cat_id, selected_cats $)) 'checked = "checked"': ""; } '<li><label><input ' . $checked . ' $ U = '<li> <label> <input'. Vérifié $. $cat_object -> cat_ID . '" /> ' . $cat_object -> cat_name . '</label>' ; type = "checkbox" name = "chats []" value = "'.. cat_object $ -> cat_id'" /> '.. cat_object $ - cat_name>' </ label> '; get_categories ( 'parent=' . $cat_object -> cat_ID ) ; $ Childs = get_categories ('parent =' $ Cat_object -> cat_id.); $childs as $key => $cat ) { foreach ($ Childs as $ key => $ cat) { '<ul style="margin-left:12px">' . __show_category ( $cat , $selected_cats ) . '</ul>' ; Ou $ .= '<ul style="margin-left:12px">' __show_category ($ cat, selected_cats $) '</ ul>'..; } '</li>' ; Ou $ .= '</ li>'; ; return $ u; } |










[...] Très court extrait: Wordpress, liste des catégories avec des cases à cocher Comment afficher la liste des catégories, accompagné d'une case à cocher. [...]