Настройка шаблона категорий в WordPress

Дата редактирования: 18.03.2018 Просмотрен: 640

Подобрал для себя код для настройки категорий, возможно и вам сгодится.

Как вывести подкатегории текущей категории

Выводим подкатегории текущей категории, если у текущей категории нет подкатегорий выводим подкатегории родителя, а li текущей категории присваеваем class cat_active. Код вставляем в catecory.php или arhive.php

<?php 
$categories = get_categories('parent='.$cat.''); 
if ($categories) {
		echo '<ul>';
	    foreach ($categories as $category) { ?>
			<li><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php   }
		echo '</ul>';  
}   else {
		
		$catlevelup = get_category(get_query_var('cat'),false);
		$catlevelupid = $catlevelup->category_parent;
		$categories = get_categories('parent='.$catlevelupid.''); 
		echo '<ul>';
		foreach ($categories as $category) { ?>
			<li<?php if ($category->term_id == $cat) { ?> class="cat_active"<?php } ?>><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
		<?php } 
		echo '</ul>';
		
}  ?>

Если нужно вывести просто подкатегории текущей категории, то код такой

<?php 
$categories = get_categories('parent='.$cat.''); 
		echo '<ul>';
	    foreach ($categories as $category) { ?>
			<li><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
<?php   } echo '</ul>'; ?>

Если нужно вывести подкатегориии с изображениями то код следующий:

<?php 
$categories = get_categories('parent='.$cat.''); 

	echo "<ul>";
	foreach ($categories as $category) { ?>
		<?php if($imgrubriki=get_field("imgrubriki",$category)){?>
			<div class="fp_katalog_thumb"><a href="/<?php echo get_category_link($cat->term_id);?>"><img src="/<?php echo $imgrubriki;?>" /></a></div>
		<?php }?>
		<li><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a></li>
	<?php } 
	echo "</ul>";
?>

Для добавления изображений использую плагин Advanced Custom Fields

Если нужно вывести категории списком с вложенными  подкатегориями делаем так:

<?php 
	$categories = get_categories('parent='.$cat.''); 

		echo "<ul>";
		foreach ($categories as $category) { ?>
			<?php if($imgrubriki=get_field("imgrubriki",$category)){?>
				<div class="fp_katalog_thumb"><a href="/<?php echo get_category_link($cat->term_id);?>"><img src="/<?php echo $imgrubriki;?>" /></a></div>
			<?php }?>
			<li><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a>
			<?php $catsub = $category->term_id; $categories = get_categories('child_of='.$catsub.''); 
			?> <ul> <?php
			foreach ($categories as $category) { ?>
			<li><a href="/<?php echo get_category_link($category->term_id); ?>" ><?php echo $category->name; ?></a>
			<?php }
			?>
			</ul>
			</li>
		<?php } 
		echo "</ul>";
	?>

Можно вывести список категорий, разными параметрами: заголовок, стиль итд. При этом автоматом будут присваеваться классы активным рубриками и прочие фишки. Делается это с помощью функции wp_list_categories

<?php
	echo '<ul class="menu_left">';
	wp_list_categories( 'child_of=5&title_li=&style=list&hide_empty=1&hierarchical=true&current_category=0' );
	echo '</ul>';
?>

Как вывести описание категории

Выводим описание категории на всех страницах

<?php echo category_description(); ?>

Выводим только на титульной странице категории и исключаем страницы пагинации и прочие

<?php 
 if (is_category()) {
  if (is_paged()) { echo '';}
  else {
     echo category_description(); }
 } ?>

 

 

 

 

 



Создан: 18.03.2018 05:28 | Отредактирован: 18.03.2018 05:28