Получих задачата да показвам всички подкатегории, когато потребителят е в категория. По подразбиране не можете да направите това в 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“.
Разкриване: Някои от връзките в тази публикация са „партньорски връзки“. Това означава, че ако кликнете върху връзката и закупите артикула, ще получа партньорска комисионна.