Hiển thị số lượng danh mục hạn chế trên meta bài đăng

Tôi đang cố gắng tìm cách giới hạn số lượng danh mục mà mã ngắn [post_categories] xuất ra. Có cách nào để làm việc này không? Ví dụ: nếu một bài đăng thuộc 10 danh mục khác mà nó hiện hiển thị mọi danh mục, có cách nào để giới hạn nó chỉ liệt kê x số lượng danh mục không? nếu vậy, làm thế nào?
Điều này rất mới đối với tôi và tôi thích ý tưởng này. Vì lý do này, tôi đã xuất bản lời khuyên này. Thả mã sau vào functions.php của bạn hoặc bất kỳ tệp trợ giúp nào khác (.php).
add_shortcode( 'limited_post_categories', 'gd_limited_post_categories' );
function gd_limited_post_categories( $atts ) {
  global $wp_rewrite;
  $thelist = '';
  $rel = ( is_object( $wp_rewrite ) && $wp_rewrite->using_permalinks() ) ? 'rel="category tag"' : 'rel="category"';
  $defaults = array(
    'sep'      => ', ',
    'before'   => __( 'Filed Under: ', 'genesis' ),
    'after'    => '',
    'limit'    => 3,
    'exclude'  => '',
  );
  $atts = shortcode_atts( $defaults, $atts, 'post_categories' );
  //* Fetching the categories of current post
  $categories = get_the_terms( false, 'category' );
  if ( ! $categories || is_wp_error( $categories ) )
    $categories = array();
  $categories = array_values( $categories );
  foreach ( array_keys( $categories ) as $key ) {
    //* excluding some terms from array
    if( ! empty( $atts['exclude'] ) || $atts['exclude'] != '' ) {
      $exclude_cats = explode( ',', $atts['exclude'] );
      if( in_array( $categories[ $key ]->term_id, (array) $exclude_cats ) ) {
        unset( $categories[ $key ] );
        continue; 
      }
    }
    _make_cat_compat( $categories[$key] );
  }
  //* Removing the extra portion
  $cats = array_splice( $categories, 0, $atts['limit'] );
  //* Do nothing if no cats
	if ( ! $cats ) {
		return '';
	}
  //* Making the list
  $i = 0;
  foreach ( $cats as $category ) {
    if ( 0 < $i )
      $thelist .= $atts['sep'];
    $thelist .= 'term_id ) ) . '" ' . $rel . '>' . $category->name.'';
    ++$i;
  }
  if ( genesis_html5() )
    $output = sprintf( '', genesis_attr( 'entry-categories' ) ) . $atts['before'] . $thelist . $atts['after'] . '';
  else
    $output = '' . $atts['before'] . $thelist . $atts['after'] . '';
  return apply_filters( 'genesis_post_categories_shortcode', $output, $atts );
}
Tôi đã tạo shortcode mới [limited_post_catgories] cho thông tin bài đăng / meta. Bạn sẽ thay đổi [post_categories] mặc định bằng mã ngắn mới này và nhận được kết quả mong muốn trên trang web của mình.

Theo mặc định, shortcode mới sẽ hiển thị 3 danh mục. Nhưng bạn có thể thay đổi giá trị bằng cách chuyển tham số giới hạn vào mã ngắn, ví dụ: [limited_post_catgories limit = 1].

Giải thích các bước. Đầu tiên, tôi đang truy xuất các danh mục bài đăng bằng cách sử dụng hàm get_the_terms của WordPress. Tôi đang nhận được tất cả các danh mục của bài đăng hiện tại trong mảng. Sau đó, tôi đang xóa phần không mong muốn khỏi mảng bằng hàm array_splice () của PHP. Chạy một vòng lặp foreach bằng cách sử dụng mảng cắt ngắn và tạo danh sách danh mục.