Как да покажем подкатегориите на категория в WordPress

08/10/2021WordPress

Получих задачата да показвам всички подкатегории, когато потребителят е в категория. По подразбиране не можете да направите това в WordPress. Има някои плъгини, които ще свършат работа, но наистина не е необходимо допълнително да натоварвате уебсайта си с допълнителни плъгини, когато можете да използвате тази проста функция:

function wp2bg_sub_category_list(){
  if(is_category()) {

    $breakpoint = 0;
    $thiscat = get_term( get_query_var('cat') , 'category' );
    $subcategories = get_terms( 'category' , 'parent='.get_query_var('cat') );

    if(empty($subcategories) && $thiscat->parent != 0) {
        $subcategories = get_terms( 'category' , 'parent='.$thiscat->parent.'' );
    }

    $items='';
    if(!empty($subcategories)) {
        foreach($subcategories as $subcat) {
            if($thiscat->term_id == $subcat->term_id) $current = ' current-cat'; else $current = '';
            $items .= '
            <li class="cat-item cat-item-'.$subcat->term_id.$current.'">
                <i class="fas fa-long-arrow-alt-right" style="margin-right:10px"></i> <a href="'.get_category_link( $subcat->term_id ).'" title="'.$subcat->description.'">'.$subcat->name.'</a>
            </li>';
        }
        echo "<ul style='padding: 0;list-style: none;'>$items</ul>";
    }
    unset($subcategories,$subcat,$thiscat,$items);
  }
}

След като функцията е готова, мога да я използвам директно във файла с темплейт за категории или в моя случай я използвах в shortcode, който поставих при оформянето на дизайна на страницата с категории с помощта на page builder. Пс. мощен и лесен за използване page builder е Divi на Elegant Themes.

// create shortcode to show subcategories as link in parent
function wp2bg_subcategrory() { 
	
    ob_start();
    sub_category_list();
	return ob_get_clean();
	
} 
// register shortcode
add_shortcode('showsubcat', 'wp2bg_subcategrory');

Целият код се поставя във functions.php на вашата child тема. И това е, ето резултата:

Обърнете внимание, че кодът е за стандартната таксономия на WordPress „Category“. Можете да го промените и да го използвате за всяка таксономия, независимо дали става въпрос за custom taxonomy или стандартна WordPress taxonomy като „Tags“.

Разкриване: Някои от връзките в тази публикация са „партньорски връзки“. Това означава, че ако кликнете върху връзката и закупите артикула, ще получа партньорска комисионна.

Още