Проверить, имеет ли запись категорию

2 авг. 2011 г., 20:31:01
Просмотры: 17.8K
Голосов: 3

Мне нужно отображать некоторый HTML только если у отображаемой записи есть категория — не конкретная категория, а просто любая категория.

Я пробовал использовать if (!is_empty(get_the_category($post->ID))), но по какой-то причине это не работает. У кого-нибудь была такая же проблема?

0
Все ответы на вопрос 1
7

Используйте has_category вместо этого.

if (has_category('',$post->ID)) ...

Если вы хотите использовать это внутри The Loop, указывать ID не обязательно.

if (has_category()) ...

2 авг. 2011 г. 20:34:46
Комментарии

По какой-то причине это вызывает ошибку. Код, который я использую: <?php if (has_category()) { ?>Опубликовано в <?php the_category(', ') ?> | <?php } ?>. Странно, что это вызывает ошибку, потому что я использую идентичный синтаксис для следующей строки (<?php if (is_single()) { ?><a href="<?php comments_link(); ?>"><?php comments_number('0 комментариев', '1 комментарий', '% комментариев'); ?></a><?php } ?>), и она отображается нормально.

daysrunaway daysrunaway
2 авг. 2011 г. 20:42:13

Вы используете WordPress 3.1 или новее? Функция has_category была добавлена в WP 3.1.

Otto Otto
2 авг. 2011 г. 22:15:38

Нет, у меня WordPress 3.0.4; это для большого и плохо спроектированного сайта, который я унаследовал от другого разработчика, поэтому я не решаюсь обновляться, чтобы ничего не сломать.

daysrunaway daysrunaway
2 авг. 2011 г. 22:18:28

Ну вот в чём проблема. Попробуйте использовать is_object_in_term( $post->ID, 'category') вместо этого. Или ещё лучше — обновитесь. Серьёзно, работать со старым кодом — полный отстой.

Otto Otto
2 авг. 2011 г. 22:20:06

Согласен, но это просто не вариант, учитывая сроки проекта.

daysrunaway daysrunaway
2 авг. 2011 г. 23:07:35

Здесь бы помогло более подробное объяснение

JGallardo JGallardo
23 июн. 2017 г. 10:08:15

Какие еще детали вам нужны? Название функции — has_category(), и она ответила на вопрос того, кто ее задал.

Otto Otto
24 июн. 2017 г. 01:24:13
Показать остальные 2 комментариев