web-dev-qa-db-fra.com

Comment limiter le nombre de catégories affichées par le widget de catégories

Je teste mon thème par rapport au test unitaire de thème WordPress selon lequel:

Un grand nombre de catégories/tags ne devrait pas avoir d'impact négatif sur la mise en page.

Je pouvais gérer le nombre de tags mais je ne pouvais pas m'en empêcher en cas de catégories. Voici le code que j'utilise pour limiter le nombre de tags affichés. Peut-il être réutilisé d'une manière ou d'une autre pour les catégories ou existe-t-il un autre moyen possible?

add_filter('widget_tag_cloud_args', 'themename_tag_limit');

//Limit number of tags inside widget
function themename_tag_limit($args){

 if(isset($args['taxonomy']) && $args['taxonomy'] == 'post_tag'){
  $args['number'] = 15; //Limit number of tags
 }

 return $args;
}
1
thunder

Vous pouvez afficher le Catégorie widgets sous la forme d'un dropdown si vous avez un grand nombre de catégories.

Je ne sais pas à quel point il est utile de limiter les catégories lorsqu'elles sont classées par name.

Vous pouvez essayer de commander par count pour afficher le le plus utilisé catégories:

add_filter( 'widget_categories_args', function( $args )
{
    $args['number']         = 1;
    $args['orderby']        = 'count';
    $args['order']          = 'DESC';
    $args['hierarchical']   = 0;
    $args['hide_empty']     = 1;

    return $args;
} );

mais il existe d'autres options telles que include et exclude.

Notez que le Category widget utilise wp_list_categories() qui utilise get_categories(), qui est un wrapper pour get_terms() qui utilise un objet WP_Term_Query qui contient la partie suivante, dans la méthode de classe WP_Term_Query::get_terms():

  // Don't limit the query results when we have to descend the family tree.
  if ( $number && ! $hierarchical && ! $child_of && '' === $parent ) {
        if ( $offset ) {
            $limits = 'LIMIT ' . $offset . ',' . $number;
         } else {
             $limits = 'LIMIT ' . $number;
         }
  } else {
      $limits = '';
  }

L'option dropdown utilise wp_dropdown_categories().

0
birgire

Vous pouvez créer votre nouveau widget personnalisé. et obtenez les identifiants de catégorie de ceux que vous voulez lister et transmettez-les à la fonction wp_list_categories.

0
umesh.nevase