web-dev-qa-db-fra.com

Comment utiliser wp_category_checklist ()?

J'ai récemment découvert que nous pouvons insérer une liste déroulante de catégories comme celle-ci:

define( 'WP_USE_THEMES', false );
require( './wp-load.php' );
wp_dropdown_categories( array(
    'child_of'         => 0,
    'class'            => 'postform', 
    'depth'            => 0,
    'echo'             => 1,
    'exclude'          => '', 
    'hide_empty'       => false, 
    'hide_if_empty'    => false,
    'hierarchical'     => true,
    'id'               => '',
    'name'             => 'cat-dropdown', 
    'order'            => 'ASC',
    'orderby'          => 'name', 
    'selected'         => 0, 
    'show_count'       => 0,
    'show_option_all'  => '', 
    'show_option_none' => __('None'),
    'tab_index'        => 0, 
    'taxonomy'         => 'format',
) );

C’est génial, MAIS et si je veux sélectionner plusieurs catégories?

J'ai rencontré wp_category_checklist() et essayé ce code:

function wp_category_checklist( 
    $post_id = 0, 
    $descendants_and_self = 0, 
    $selected_cats = false, 
    $popular_cats = false, 
    $walker = null, 
    $checked_ontop = true 
) {
    wp_terms_checklist( $post_id, array(
        'taxonomy'             => 'category',
        'descendants_and_self' => $descendants_and_self,
        'selected_cats'        => $selected_cats,
        'popular_cats'         => $popular_cats,
        'walker'               => $walker,
        'checked_ontop'        => $checked_ontop
    ) );
}

Mais cela ne produit rien.

J'essaie d'obtenir une liste de mes catégories sur une page blanche, pas dans une barre latérale ou post. Est-ce possible?

1
Sweepster

Voici la réponse que j'ai fini avec:

$select_cats = wp_dropdown_categories( array( 'echo' => 0 ) );
$select_cats = str_replace( "name='cat' id=", "name='cat[]' multiple='multiple' id=", $select_cats );
echo $select_cats;

Il affiche une liste de mes catégories pouvant être multi-sélectionnées selon ma question. C'est un hack de wp_dropdown_categories, mais ça marche.

2
Sweepster

La fonction wp_terms_checklist est définie dans le fichier /wp-admin/includes/template.php et n'est donc disponible que du côté administrateur de Wordpress.

1
Mike

Si vous souhaitez sélectionner plusieurs taxonomies personnalisées avec la case à cocher. Vous pouvez utiliser ce code ..

 $html .= wp_dropdown_categories( array(
                        'taxonomy' => 'taxonomy_name',
                        'hierarchical' => 0,

                    ) );


$html = str_replace( "form id=", "form multiple='multiple' id=", $html );
$html = str_replace( "select", "span", $html );
$html = str_replace( "option class=", "input type='checkbox' class=", $html );
$html = str_replace( "option", "", $html );
$html = str_replace( "</>", "<br/>", $html );

echo $html;

Et Tf Vous voulez sélectionner plusieurs catégories avec la case à cocher. Vous pouvez utiliser ce code ..

$html = wp_dropdown_categories( array( 'echo' => 0, 'hierarchical' => 0 ) ); // Your Query here

$html = str_replace( "form id=", "form multiple='multiple' id=", $html );
$html = str_replace( "select", "span", $html );
$html = str_replace( "option class=", "input type='checkbox' class=", $html );
$html = str_replace( "option", "", $html );
$html = str_replace( "</>", "<br/>", $html );

echo $html;
0
Shapon Pal