WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

category_description() WP 1.0.0

Получает описание рубрики, которое указывается на странице редактирования рубрики в админ-панели (посты > рубрики).

Если category_description() используется на странице архивов, отличной от category.php, то перед тем как использовать функцию нужно проверить, что генерируется страница категорий, а не какая-нибудь страница меток, авторов, дат и т.д.. Сделать это можно условным тегом is_category().

Работает на основе: term_description()

Хуков нет.

Возвращает

Строку. Описание категории.

Использование

$description = category_description( $category_id );
$category_id(число)
ID категории, описание которой нужно получить.
По умолчанию: текущая категория (в запросе)

Примеры

#1. Обычный пример использования

Выведем на экран описание категории 3 (id категории), используя оператор echo. echo нужен для вывода описания категории на экран, так как функция просто возвращает описание и ничего не выводит.

<?php echo category_description(3); ?>

В результате, получим описание категории 3.

#2 Выводим описание категории, только если оно есть

if ( $cat_desc = category_description() )
	echo '<div class="cat__desc">'. $cat_desc .'</div>';
else
	echo '<div class="no__cat__desc">Описание отсутствует!</div>';

#3. Описание категории полученной через ярлык

Выведем на экран описание категории (рубрики), используя слаг (альтернативное название категории), а не ID как в прошлом примере. Для этого получим ID с помощью функции get_category_by_slug().

<?php echo category_description( get_category_by_slug('category-slug')->term_id ); ?>

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

Пример выше можно так же заменить на этот, тоже будет получено описание категории по слагу:

<?php echo get_category_by_slug('category-slug')->description; ?>

#4. Очистим описание категории при выводе, через фильтр term_description

Допустим у нас в описании категории используется шоткод [image=/ссылка_на_картинку] мы используем этот шоткод в других местах, но когда мы выводим описание категории, он нам не нужен. Чтобы его убрать воспользуемся фильтром:

add_filter('term_description', 'clear_term_description_image_shortcode');
function clear_term_description_image_shortcode($value){
	return preg_replace('@[image=[^]]*]@', '', $value);
}

Код category description: wp-includes/category-template.php WP 5.2.2

<?php
function category_description( $category = 0 ) {
	return term_description( $category );
}

Cвязанные функции

Из метки: Описание (post term description)

Еще из раздела: Рубрики

Еще из тегов шаблона: Таксономии: рубрики, метки, ...

35 комментов
Полезные 5 Все
  • Евгений cайт: finansy.name

    Здравствуйте! Подскажите, пожалуйста, как сделать, чтобы в описании поддерживались шорткоды? Например, вывод таблицы от TablePress.

    Ответить1.1 года назад #
    • @ campusboy3377 cайт: www.youtube.com/c/wpplus

      Приветствую. Попробуй так:

      add_filter('term_description', 'do_shortcode');
      1
      Ответить1.1 года назад #
  • Здравствуйте!

    Помогите, пожалуйста разобраться:

    Список рубрик выводиться в сайт баре (виджет), при наведении мышкой на ссылку рубрики отображается её полное описание (очень большой текст, который прописан в рубрике).

    Есть какая нибудь возможность его сократить или вовсе удалить ? Весь этот текст только зря увеличивает размер страниц.

    <li class="cat-item cat-item-10"><a href="https://site.ru/rubrika_1/" title=" МНОГО ТЕКСТА">Рубрика №1</a></li>

    Заранее спасибо.

    Ответить1.1 года назад #
    • @ campusboy3377 cайт: www.youtube.com/c/wpplus

      Здравствуйте. Попробуйте добавить в файл functions.php темы такой код:

      add_filter( 'widget_categories_args', function ( $cat_args ) {
      	$cat_args['use_desc_for_title'] = 0;
      
      	return $cat_args;
      } );
      2
      Ответить1.1 года назад #
  • Marcusk9n cайт: my-cccp.ru

    Подскажите, а как при выводе текста ограничить количество символов?

    Ответитьмесяц назад #
    • @ campusboy3377 cайт: www.youtube.com/c/wpplus

      Можете воспользоваться кодом из статьи Правильно обрезаем любой текст в WordPress

      1
      Ответитьмесяц назад #
      • Marcusk9n cайт: my-cccp.ru

        Если честно, то для меня немного сложновато...

        Сейчас у меня имеется конструкция вида:

        <div class="text"><?php echo $value->description; ?></div>

        Вот как мне ее проще ограничить по кол-ву символов?

        Ознакомился со статьей выше, но пока не могу всё понять(

        Ответитьмесяц назад #
        • Kama7489

          Там в конце статьи есть простой пример обрезки текста:

          $text = strip_tags( get_the_content() );
          echo mb_substr( $text, 0, 152 );

          Если это не понятно, то наверное стоит обратиться к специалистам на платной основе.

          Ответитьмесяц назад #
  • @ ELCapitan cайт: ration.top

    Добрый день, мучаюсь с такой задачей: хочу вывести описание категории в тайтле (только для страницы категории), сейчас в шаблоне такая структура:

    <title><?php is_front_page() ? bloginfo('description') : wp_title(''); ?> 
    <?php if( !is_paged() ){ ?><?php echo category_description(); ?><?php } ?></title>

    Это работает, но в тайтле это отбражается как:

    НАЗВАНИЕ КАТЕГОРИИ <p>описание</p> 

    Вот мне нужно эти теги "p" убрать, как это сделать? Заранее большое спасибо, я хожу вокруг да около и не понимаю

    Ответить4 дня назад #
Здравствуйте, !     Войти . Зарегистрироваться