Получить id текущей категории wordpress

Вытаскивает значения указанных параметров из объекта класса WP_Query, используемого на текущей странице, а именно — из глобальной переменной $wp_query .

Примеры

Получение номера текущей страницы

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

Получение ID и ярлыка текущей рубрики

Код работает только непосредственно на страницах самих категорий.

Получаем ID рубрики:

ID и ярлык текущей метки

Так же, как и в случае с рубриками, код будет работать только на страницах архивов меток.

Таксономии

Название самой таксономии:

Ярлык текущего элемента таксономии:

Поисковые запросы

Весь запрос в виде строки:

В виде массива, в котором каждое слово поискового запроса — отдельный элемент:

Впервые познакомился с WordPress в 2009 году. С 2014 года меня можно встретить на WordCamp по всему миру — официальной конфе по WordPress, иногда там выступаю. Также периодически школа Epic Skills и LoftSchool приглашают меня вести у них уроки/вебинары.

Если вам нужна помощь с вашим сайтом или может даже разработка с нуля — пишите мне.

Как узнать текущую категорию в WordPress. Примеры, описание функций.

В зависимости от ситуации, существует 3 способа с помощью которых можно узнать текущую категорию в WordPress.

  • Способ 1. Через get_queried_object()
  • Способ 2. Через get_the_category()
  • Способ 3. Через wp_get_post_terms()

Способ 1. Через get_queried_object()

Данный способ подходит для ситуации когда мы находимся на странице категорий. Там где используется шаблон archive.php.

Читайте также  Служба поддержки триколор в самаре телефон

Способ 2. Через get_the_category()

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

get_the_category() — Получает массив c данными о категориях поста. Работает на основе get_the_terms().

Пример 1. Получим ID и Имя первой категории поста.

Пример 2. Выведем ID и Имя всех категорий поста.

Способ 3. Через get_the_terms()

Данный способ тоже самое что и второй. Разница в том что get_the_category предназначен для таксономии Рубрики (Все называют эту таксономию категории). А с помощью get_the_terms можно получить данные любой таксономии. Для этого мы передаем ID поста и название таксономии, в нашем случае это будет category.

Пример 1. Получим ID и Имя первой категории поста.

Получает ID категории по переданному названию.

Функция возвращает 0, если не удалось получить идентификатор.

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

Примеры

#1. Записи из указанной рубрики

Пример использования этой функции для получения записей из определенной категории при помощи функции query_posts():

Список изменений

С версии 1.0.0 Введена.

Код get cat ID : wp-includes/category.php WP 5.3.2

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

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

Надо еще в начале странице (Перед абзацем о том что ф-я запрещена) большими буквами написать что теперь её аналог get_term_by();

Можно было обычно сказать, что ошибка, издеваться совсем не к чему. Убрал сообщение, была ошибка в маркировке функции.

Добрый день.
Искал как просто получить id текущей категории, не передавая имя.
нашел, решил дополнить.

Спасибо за дополнение.

Тут нужно дописать, что так ID категории можно получить только находясь на архивной странице категории, т.е. отвечающей условию is_category().

Ну да, именно это и нужно. Использовал для создания меню, для определенной страницы категории. Через ее имя не особо удобно айди получать.

Читайте также  Разобрать слово по составу платье

Вообще, на таких архивных страницах ID котегории находится в глобальной переменной $cat :

Спасибо. Правлю очередной шаблон. Инфа, как всегда кстати, чета не задумывался про глобальную переменную. Нужно будет вообще ее посмотреть, че там еще полезного вынуть можно

Kama, подскажи, пожалуйста, а как вывести какой-либо элемент на всех страницах одной рубрики? Мне нужно вывести отдельное меню для одной рубрики, которое будет показываться только в самой этой рубрике.
Заранее большое спасибо, если сможешь помочь.

Зарегистрируйте меню и выведете его в шаблоне с использованием условного тега is_category(). Как-то так:

вот так заработало.

В названии категории содержится подобная конструкция "20 — 30" и такого вида код:

возвращает не ID существующей категории, а 0 (не удалось получить идентификатор).
Если "20 — 30" заменить на "20—30", то все работает как надо и ID выводится нужный.
Как это исправить? В чем может быть проблема?

Вы сами ответили на свой вопрос. Это из-за очистки ярлыка наверное. Попробуйте заменить "—" на "-".

Не помогло, он все равно выводит длинное тире. Я думал может можно как-нибудь экранировать знак или что-то в таком духе. В итоге просто удалил пробел между числами и тире между ними (только это уже не тире тогда, а дефис).

Ссылка на основную публикацию
Adblock
detector