web-dev-qa-db-fra.com

Ajouter un filtre par étiquette dans la page de la console d'administration toutes les publications

Par défaut, la page "tous les messages" contient les filtres suivants

  • par date
  • par catégorie

Existe-t-il un moyen d'ajouter "par balises"?enter image description here

1
Prakash Raman

Filtre utilisateur 'restrict_manage_posts' pour ajouter un autre filtre. Utilisez le code suivant dans functions.php

function kc_add_taxonomy_filters() {
global $typenow;

// an array of all the taxonomyies you want to display. Use the taxonomy name or slug
$my_taxonomies = array(  'post_tag' );
switch($typenow){

    case 'post':

        foreach ($my_taxonomies as $tax_slug) {


                    $tax_obj = get_taxonomy($tax_slug);
                    $tax_name = $tax_obj->labels->name;
                    $terms = get_terms($tax_slug);
                    if(count($terms) > 0) {
                        echo "<select name='$tax_slug' id='$tax_slug' class='postform alignleft actions'>";
                        echo "<option value=''>Show All $tax_name</option>";
                        foreach ($terms as $term) {
                            echo '<option value="', $term->slug,'" ',selected( @$_GET[$tax_slug] == $term->slug , $current = true, $echo = false ) , '>' , $term->name ,' (' , $term->count ,')</option>';
                        }
                        echo "</select>";
                    }

        }


    break;
}
}
add_action( 'restrict_manage_posts', 'kc_add_taxonomy_filters' );
3
Dipesh KC

Sans aucune aide de la part de cette communauté et des règles de réputation ridicules, j'ai trouvé un moyen de modifier le code ci-dessus afin qu'il fonctionne correctement.

Le code suivant doit aller dans wp-includes/functions.php . Notez que j'ai codé en dur le nom choisi pour être tag, ce qui semble être le fonctionnement actuel de la chaîne de requête de filtrage WP.

function kc_add_taxonomy_filters() {
global $typenow;

// an array of all the taxonomyies you want to display. Use the taxonomy name or slug
$my_taxonomies = array(  'post_tag' );
switch($typenow){

    case 'post':

        foreach ($my_taxonomies as $tax_slug) {


                    $tax_obj = get_taxonomy($tax_slug);
                    $tax_name = $tax_obj->labels->name;
                    $terms = get_terms($tax_slug);
                    if(count($terms) > 0) {
                        echo "<select name='tag' id='$tax_slug' class='postform alignleft actions'>";
                        echo "<option value=''>Show All $tax_name</option>";
                        foreach ($terms as $term) {
                            echo '<option value="', $term->slug,'" ',selected( @$_GET[$tax_slug] == $term->slug , $current = true, $echo = false ) , '>' , $term->name ,' (' , $term->count ,')</option>';
                        }
                        echo "</select>";
                    }

        }


    break;
}
}  

Ensuite, l'action doit être insérée dans votre fichier functions.php de thème (wp-content/themes/YOURTHEME/functions.php

add_action( 'restrict_manage_posts', 'kc_add_taxonomy_filters' );
0
TPD