@Smirator

Как показывать разное количество записей?

Начинаю разбираться с wp.
Мне нужно, чтобы если в категории одна запись, то при клике на категорию сразу переходить в запись. Если в категории больше одной записей, то показывать все записи.

Пробую так:
<?php  if($items == 1) : echo $items[0]; 
	    else : echo $items ?>

                 <p>Мой контент</p>

<?php endif; ?>


Конструкция не срабатывает. Подскажите, пожалуйста, в чем ошибка?
  • Вопрос задан
  • 67 просмотров
Решения вопроса 1
if($items == 1) : echo $items[0]

Вы пытаетесь сравнить массив с числом, а потом вывести первый элемент массива. Не надо так :)
В PHP есть функция count(arr), которая возвращает количество элементов в массиве. (Дока).

echo $items

Опять же, если $items - это массив, надо выводить его перебором в цикле, например. Для тестов можно var_dump попробовать
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
artzolin
@artzolin Куратор тега WordPress
php, WordPress разработка сайтов artzolin.ru
Все редиректы должны происходить на хуке template_redirect

add_action( 'template_redirect', 'category_redirect' );
function category_redirect() {

	if ( is_category() && get_queried_object()->count == 1 ) {

		global $wp_query;
		
		if ( isset( $wp_query->posts[0]->ID ) ) {
			wp_redirect( get_the_permalink( $wp_query->posts[0]->ID )  );
		}
		
	}
}
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы