WordPress Category List by Alphabet Code Without Plugin
In your functions.php, insert the code below. In the page or post or wherever you want, just use the shortcode [sorted_category_list]
and the sorted category list will appear 🙂
add_shortcode('sorted_category_list', 'sorted_category_list_shortcode'); function sorted_category_list_shortcode() { $html = ""; $categories = get_categories( array( 'orderby' => 'name', 'order' => 'ASC', 'include_last_update_time' => false, ) ); if( empty($categories) ) { $html .= "<p>Category list is empty</p>"; } else { // Sort categories $sorted_categories = []; foreach( $categories as $category ) { $category_name = $category->name; if( count($category_name) > 0 ) { $first_char = $category_name[0]; $first_char = strtoupper($first_char); if( ctype_alnum($first_char) ) { // if $first_char is alphanumeric $sorted_categories[$first_char][] = $category; } else { $sorted_categories['Others'][] = $category; } } } foreach( $sorted_categories as $initial=>$categories ) { $html .= "<p style='font-weight:bold;'>{$initial}</p>"; $html .= "<ul>"; foreach($categories as $category) { $category_name = $category->name; $category_id = $category->term_id; if( $category_id > 0 ) { $category_link = get_category_link($category_id); $html .= "<li><a href='{$category_link}'>{$category_name}</a></li>"; } else { $html .= "<li>{$category_name}</li>"; } } $html .= "</ul>"; } } return $html; }
Be First to Comment