web-dev-qa-db-ja.com

カテゴリウィジェットに表示されるカテゴリ数を制限する方法

私はWordPressテーマ単体テストに対して自分のテーマをテストしています。

多数のカテゴリ/タグがレイアウトに悪影響を及ぼすことはありません。

タグの数を管理することはできましたが、カテゴリの場合は自分自身を助けることができませんでした。これは、表示されるタグの数を制限するために使用しているコードです。それはどういうわけかカテゴリのために再利用することができますか、あるいは他の可能な方法はありますか?

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

たくさんのカテゴリがある場合は、代わりに Category ウィジェットを dropdown として表示できます。

nameで並べ替えたときにカテゴリを制限することがどれほど有用かわからない。

最も使用されている のカテゴリを表示するためにcountで順序付けしようとするかもしれません:

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;
} );

しかしincludeexcludeのような他のオプションもあります。

Category ウィジェットは、wp_list_categories()を使用するget_categories()を使用しています。これは、get_terms()クラス・メソッドで、次の部分を含むWP_Term_Queryオブジェクトを使用する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 = '';
  }

dropdown オプションはwp_dropdown_categories()を使用します。

0
birgire

あなたはあなたの新しいカスタムウィジェットを作成することができます。そして、あなたがリストしたいそれらのカテゴリーIDを得て、それらをwp_list_categories関数に渡してください。

0
umesh.nevase