Вывод смежных категорий по id для текущей категории

Содержание материала:

get_the_category — функция для вывода категорий (рубрик) к указанному посту

Функция возвращает массив объектов (в данном случае рубрики, в которых находится пост с указанным в параметрах ID).

Короче говоря в итоге вы получаете все рубрики поста и информацию о них .

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

Параметры

$id
(целое) ID поста, если функция используется в цикле, этот параметр необязателен.

Возвращаемые значения

Как я уже говорил, функция возвращает массив объектов, каждый из них содержит информацию об одной из рубрик, в которой находится пост.

В скобках указаны эквивалентные варианты.

  • term_ID (cat_ID) — ID рубрики,
  • name (cat_name) — название рубрики,
  • slug (category_nicename) — ярлык категории,
  • description (category_description) — описание категории,
  • parent (category_parent) — ID родительской категории,
  • count (category_count) — количество записей (постов) в рубрике,
  • term_group — значение колонки term_group в базе данных,
  • term_taxonomy_id — ID таксономии, у рубрик он равен 1,
  • taxonomy — название таксономии, для рубрик — category,
  • object_id — ID объекта;

Примеры

Выводим список рубрик со ссылками

Переменной $post_id задайте своё значение, либо просто удалите её оттуда, если используете этот код внутри цикла.

Для получения URL рубрики используем функцию get_category_link().

Выводим список рубрик к текущему посту через запятую

Функция trim() нужна для удаления каких-либо символов по краям строки, в данном случае запятую с пробелом.

Указываем ссылку только на первую рубрику, в которой находится пост

К каждому объекту массива $categories можно обратиться по порядковому номеру, нумерация начинается с нуля.

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

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

Список меток текущей категории

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

Вариант в файл funсtion.php

В шаблон вывода категории

ID — либо переменная ID текущей категории, либо прописать конкретную категорию

С кнопкой «All» (для сортировки по меткам) и проверкой — выводить только при наличии меток

Выдает ошибку в error.log если выводить в других шаблонах помимо category.php

Вариант прямо в верстку

Сортировка для категорий
Дополненный вариант с проверкой на наличие тегов и модулем сортировки. Не нарушает пэйджинацию (за счет вставки wp_reset_query();). Можно делать миниатюры меток и ссылку на метку.

Сортировка для таксономий
Немного изменен изначальный цикл. Работает в шаблоне таксономий.

Данный функционал можно использовать для сортировки записей по меткам.

Сортировка по терминам пользовательской таксономии

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

И в коде для jquery тоже

Поделится информацией с друзьями

3 способа узнать текущую категорию в WordPress

Как узнать текущую категорию в 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 и Имя первой категории поста.

Вывод названия текущей категории в WordPress

Готовые PHP для вывода названий текущей категории в записях WordPress. Вывод разделов в зависимости от глубины подраздела, в которой находится запись.

Есть стандартная функция для вывода категорий на WordPress:

Она выводит список всех категорий через запятую.

Топ-пост этого месяца:  Как сделать оплату в интернет-магазине через платежные системы, настройка и подключение оплаты

А что если нужно вывести только определенный вложенный (дочерний) или только главный раздел? И совсем не нужно выводить все предыдущие разделы. В этом случае the_category уже не подойдет.

Сделать это можно другими способами.

Вывести название только самого главного раздела

Этот код следует вставить в файл functions.php своей темы на WordPress.

function get_level($category, $level = 1)
<
if ($category->category_parent == 0) <
return $level;
> else <
$level++;
$category = get_category($category->category_parent);
return get_level($category, $level);
>
>

function display_cat_level_1($link=false) <
$cats = get_the_category( );
if( $cats ) <
foreach($cats as $cat) <
$current_cat_level = get_level($cat);
if( $current_cat_level == $level = 1 ) <
if($link==true) <
echo ‘cat_ID).'»>’.$cat->name.» «;
> else <
echo $cat->name.»
«;
>
>
>
>
>

Вывод этой функции:

Следующий код необходимо использовать в файле single.php или любом другом отвечающим за вывод информации в статье на сайте.

Вывести название только дочернего раздела

Функция не будет работать для записей второй категории вложенности. Только для записей третей категории вложенности. Иными словами будет выводиться только для записей такого рода:

Категории Марки -> Audi -> Статья об Ауди

В данном случае код выведет для записи «Статья об Ауди» раздел с названием Audi. А если какая-то статья будет находится только в разделе Марки, то для неё выводится ничего не будет.

function get_level($category, $level = 1)
<
if ($category->category_parent == 0) <
return $level;
> else <
$level++;
$category = get_category($category->category_parent);
return get_level($category, $level);
>
>

function display_cat_level_2($link=false) <
$cats = get_the_category( );
if( $cats ) <
foreach($cats as $cat) <
$current_cat_level = get_level($cat);
if( $current_cat_level == $level = 2 ) <
if($link==true) <
echo ‘cat_ID).'»>’.$cat->name.» «;
> else <
echo $cat->name.»
«;
>
>
>
>
>

Вывод этой функции:

Вывод родительской категории в статьях

Можно выводить разделы другим способом. В этом случае не нужно ничего вставлять в файл functions.php. Достаточно вставить код в файл вывода записей.

category_parent == 0) <
if ( !in_array($category->cat_ID, $excludedcats) ) <
echo $separator . » . $category->name.»;
// echo $separator . ‘ – term_ >name)) . ‘» ‘ . ‘>’ . $category->name.»;

Вывод названия последнего раздела для статьи

Этот php код выводит название самой «глубокой» категории для статьи:

ID);
foreach($categories as $category) :
$children = get_categories( array (‘parent’ => $category->term_id ));
$has_children = count($children);
if ( $has_children == 0 ) <

Выводим в статье только подразделы

А вот ещё один способ как вывести в статье только подразделы.

foreach($categories as $category) :
$children = get_categories( array (‘parent’ => $category->term_id ));
$has_children = count($children);

if ( $has_children == 0 ) <
echo $category->cat_name .’ ‘;
break; // Останавливаем после первого найденного объекта. Если нужны все, то строчку нужно закомментировать.
>
endforeach;

Вывод подкатегорий текущей или родительской категории по алфавиту с буквой в WordPress

Нужно сделать вывод подкатегорий с розделением на блоки с буквами

1 ответ 1

Все очень просто: меняем get_posts на get_categories:

Всё ещё ищете ответ? Посмотрите другие вопросы с метками php wordpress или задайте свой вопрос.

Похожие

Подписаться на ленту

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

дизайн сайта / логотип © 2020 Stack Exchange Inc; пользовательское содержимое попадает под действие лицензии cc by-sa 4.0 с указанием ссылки на источник. rev 2020.11.6.35358

Выводим свои соответствующие теги (метки) для конкретной текущей рубрики (2 варианта)

Не так давно один из моих клиентов заказал такое задание: клиенту требовалось добавить в архивы категорий и в отдельную запись блоки навигации по меткам (тегам). Ничего сложного в этом как бы нет, однако, заказчику требовалось организовать вывод меток таким образом, чтобы в архивах конкретных рубрик выводились только соответствующие текущей рубрике метки! т.е чтобы «облако меток» выводилось не всё скопом, а только те метки, которые принадлежат конкретной категории. Такой же принцип вывода и для отдельной записи, чтобы метки выводились только из той категории, к которой относится запись…

Просил подобную фичу организовать без плагина.

Как известно, в стандартном виджете WordPress «Облако меток» возможности вывода меток для отдельной категории нет.

Короче, решение было найдено — им и делюсь с читателями:

своё облако меток для каждой отдельной категории записей

Вот, например, у меня на тестовом сайте получилось так (скриншот ниже): в разделе сайта (в категории/рубрике) «Шаблоны — описания» выведены метки, принадлежащие записям только этой категории. Т.е. все имеющиеся на сайте теги — всё их общее количество выводиться не будут — а будут отображены только те метки (теги) которые относятся к данной конкретной категории — в любой другой рубрике, будут выводиться только соответствующие ЕЙ метки!

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

В принципе — это удобно для требовательного администратора.

Что нам и требовалось.

функция — код вывода меток для определённой категории

Для начала, требуется добавить в файл functions.php активного шаблона код показанный ниже (либо организуем — создадим свой плагин):

Код я немного подработал и дополнил понятности ради комментариями…

1 — например, возможно сделать так, чтобы в скобках после каждого имени метки отображалось количество записей…

В финальной части кода — там, где формируется ссылка меток — можно добавить (‘. $tag->posts_count .’) — в этом случае будет показано (в скобках) количество записей…

2 — …чтобы в зависимости от количества записей в разделе МЕТКИ, шрифт тега увеличивался/уменьшался… Отработка данных переменной $i += 1; — в коде комментарии.

Код возможно сократить… однако, я его сильно кастрировать не стал, потому как у всех у нас разные потребности… Пусть каждый решает сам, что ему требуется, а что нет…

выводим метки только конкретной категории

Для того, чтобы вывести на сайте (фронтенд) СВОИ метки для каждой конкретной рубрики сайта, всего-то потребуется запросить в файлах (либо в сайдбаре) отработку функции данной выше.

Как это делается?

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

Код прописывать в сайдбар (виджет), либо напрямую в соответствующий файл активного шаблона.

Для того, чтобы вывести метки по конкретной категории (записи), к примеру, в сайдбаре, потребуется воспользоваться выджетом, который умеет работать с PHP кодом (стандартные виджеты WP такой возможности не имеют) — а посему смею предложить свой плагин Плагин w >установка плагинов «Добавить новый».

Плагин очень простой — никаких настроек — после установки и активации, в админке, в разделе «Виджеты», появится новый виджет, который умеет работать с PHP и шорткодами..

Что ещё… …если нам требуется дать имя блоку меток по рубрикам, то возможно при помощи оператора echo — в коде вызова функции (данном чуть выше) организовать примерно такую строку:

Топ-пост этого месяца:  В Search Console появится статистика по публикациям из ленты Discover

как видите, пример — имя раздела «Теги».

Возможно, будет кому-то полезна статья о том, как закрыть метки (теги) от роботов — либо nofollow либо AJAX .

Либо же — к вашим услугам плагин «Закрытых меток» по метОде AJAX …

Тем, которые не знают:

вывод блоков меток для конкретной рубрики возможно организовать и ещё более тонко (или в сайдбаре/виджете, либо в коде) — например, запретить вывод блока меток на главной странице, в конкретном архиве рубрик/меток и пр. или статье, а в каких-то иных архивах напротив — разрешить…

Если изучите статью Условные теги WordPress — полная подборка, пояснения то у вас всё получится так, как требуется для вашего бизнеса.

css для вывода меток привязанных к конкретной категории

Вот примерный CSS код для описанного в статье вывода блока меток для отдельных рубрик: код дан для примера, так что можете его смело редактировать в соответствии со стилистикой своего сайта.

выводим метки только для конкретной рубрики

Код, показанный ниже, призван выводить метки только для текущей рубрики (раздела сайта). Таким образом функция отработает для каждой категории свои собственные метки (теги)!

Помещать в файл функций functions.php активного шаблона и выводить в том месте, где следует… В сайдбаре или в файлах шаблона.

Внимание! в записях — код правильно работать не будет — в записях метки будут отображены все, которые имеются на сайте. Поэтому, если нужно чтобы в записях были показаны метки текущей категории, к которой относится запись, используйте код выше — ПЕРВЫЙ вариант!

…далее… вызываем функцию там, где требуется кодом, показанным ниже: (со ссылкой возможно работать по своим усмотрениям — закрыть ссылки в либо nofollow либо AJAX — как это делается, ссылки ВЫШЕ)

Код CSS использован что и для первого кода: span

Вот в принципе и всё, что хотелось сегодня рассказать…

Если что-то не ясно…

Михаил ATs — владелец блога запросто с Вордпресс — в сети нтернет давным-давно.

. веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети. — заказы, вопросы. разработка.

Вывод категорий/подкатегорий статей и создание url

Привет. Существует таблица «article_category«, в ней следующая структура:
id | name | slug | parent_id

id — это уникальный айди категории
name — название самой категории
slug — то, что пользователь видит в url (. /my-category)
parent_ >
Далее, таблица «article«, где содержатся все статьи
id | title | slug

id- уникальный айди статьи

И таблица «category_article_rel». показывает связь между категориями и статьями
article_id | category_id

Вопрос в том, при выводе всех статей из БД, как вывести еще и подкатегорию данной статьи и показать это в URL?

Вот к примеру, все категории, и видно что у одной из них сущесвует родитель, как действовать дальше чтобы было url был такого плана?

Вот так я получаю статьи, где айди категории = 13

29.03.2020, 12:20

Вывод категорий и подкатегорий на страницу
Как из данной таблицы вывести таблицу такого типа? Смысл в том, чтобы id_s вывелась на сайт в.

Вывод категорий/подкатегорий на страницу сайта
PHP не изучал вообще, но знаком с разными языками программирования, поэтому правлю элементарные.

Дерево категорий и вывод статей
Ребята, здравствуйте! Очень нужна помощь. Пытаюсь сделать дерево категорий. есть 2 таблицы.

Создание и вывод категорий из бд
Добрый день.Возникла небольшая проблема,как выводить статьи по категориям. Поскольку я новичок,не.

Выборка нескольких статей из всех категорий
Добрый день, уважаемые форумчане! Задача у меян следующая: вывести на одной странице по пять.

29.03.2020, 12:41 2 29.03.2020, 12:48 [ТС] 3

Kerry_Jr, ЧПУ это не проблема, вопрос не в этом.
Вопрос в том, при выводе всех статей из БД, как вывести еще и подкатегорию данной статьи и показать это в URL?
А ЧПУ , не ЧПУ, это я сам сделаю.

Я думаю, все с этим же сталкивались, работая с категориями/подкатегориями. Просто, логику не понимаю

29.03.2020, 13:32 4

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

Если категория у статьи может быть только одна, таблица category_article_rel лишняя.

P.S. Существует подход не использовать алиас категории в адресах статей и подкатегорий:
/article/
/category/
Можно и без /article или /category.

Можно просто выбрать пересечение по двум алиасам или по алиасу статьи и совпадению идентификатора категории, но в последнем случае алиас категории в адресе будет фейковый и может быть любым (похоже на присоединение категории по ее идентификатору).

Как вывести список статей нужной категории в любом месте шаблона WordPress

Вступление

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

Важно! Перед работой с кодом сайта сделайте резервную копию на случай ошибки.

Вывод заголовков постов категории или нескольких категорий в любом месте шаблона

Основа кода, функция :

Параметры (args) функции по умолчанию определены в файле: wp-includes/post.php

С функцией применяются следующие переменные параметры:

Несколько примеров вывода последних заголовков статей нужных категорий в любом месте шаблона

  • В примере значения N это количество выводимых постов ;
  • A, B, C и т.д. это ID категорий, посты которых нужно выводить .

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

Вывод названий постов в виде списка с маркерами

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

Куда вставлять коды для вывода постов категории ?

После составления кода для выполнения ваших задач его нужно вставить в нужный файл шаблона. Шаблон можно редактировать из административной панели на вкладке Внешний вид →Редактор, предварительно нужно сделать резервную копию редактируемого файла. Например, чтобы добавить вывод списка сразу после статьи, нужно добавить после кода:

Примеры кодов проверены на двух сайтах версии wp 3.5.1

Как узнать ID рубрик

Узнать ID рубрик можно в редакторе рубрик, на вкладке Записи→Рубрики. ID рубрики видна внизу страницы при наведении курсора на название рубрики:

Топ-пост этого месяца:  OpenCart – модуль Политика кофиденциальности

Выводим свои соответствующие теги (метки) для конкретной текущей рубрики (2 варианта)

Не так давно один из моих клиентов заказал такое задание: клиенту требовалось добавить в архивы категорий и в отдельную запись блоки навигации по меткам (тегам). Ничего сложного в этом как бы нет, однако, заказчику требовалось организовать вывод меток таким образом, чтобы в архивах конкретных рубрик выводились только соответствующие текущей рубрике метки! т.е чтобы «облако меток» выводилось не всё скопом, а только те метки, которые принадлежат конкретной категории. Такой же принцип вывода и для отдельной записи, чтобы метки выводились только из той категории, к которой относится запись…

Просил подобную фичу организовать без плагина.

Как известно, в стандартном виджете WordPress «Облако меток» возможности вывода меток для отдельной категории нет.

Короче, решение было найдено — им и делюсь с читателями:

своё облако меток для каждой отдельной категории записей

Вот, например, у меня на тестовом сайте получилось так (скриншот ниже): в разделе сайта (в категории/рубрике) «Шаблоны — описания» выведены метки, принадлежащие записям только этой категории. Т.е. все имеющиеся на сайте теги — всё их общее количество выводиться не будут — а будут отображены только те метки (теги) которые относятся к данной конкретной категории — в любой другой рубрике, будут выводиться только соответствующие ЕЙ метки!

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

В принципе — это удобно для требовательного администратора.

Что нам и требовалось.

функция — код вывода меток для определённой категории

Для начала, требуется добавить в файл functions.php активного шаблона код показанный ниже (либо организуем — создадим свой плагин):

Код я немного подработал и дополнил понятности ради комментариями…

1 — например, возможно сделать так, чтобы в скобках после каждого имени метки отображалось количество записей…

В финальной части кода — там, где формируется ссылка меток — можно добавить (‘. $tag->posts_count .’) — в этом случае будет показано (в скобках) количество записей…

2 — …чтобы в зависимости от количества записей в разделе МЕТКИ, шрифт тега увеличивался/уменьшался… Отработка данных переменной $i += 1; — в коде комментарии.

Код возможно сократить… однако, я его сильно кастрировать не стал, потому как у всех у нас разные потребности… Пусть каждый решает сам, что ему требуется, а что нет…

выводим метки только конкретной категории

Для того, чтобы вывести на сайте (фронтенд) СВОИ метки для каждой конкретной рубрики сайта, всего-то потребуется запросить в файлах (либо в сайдбаре) отработку функции данной выше.

Как это делается?

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

Код прописывать в сайдбар (виджет), либо напрямую в соответствующий файл активного шаблона.

Для того, чтобы вывести метки по конкретной категории (записи), к примеру, в сайдбаре, потребуется воспользоваться выджетом, который умеет работать с PHP кодом (стандартные виджеты WP такой возможности не имеют) — а посему смею предложить свой плагин Плагин w >установка плагинов «Добавить новый».

Плагин очень простой — никаких настроек — после установки и активации, в админке, в разделе «Виджеты», появится новый виджет, который умеет работать с PHP и шорткодами..

Что ещё… …если нам требуется дать имя блоку меток по рубрикам, то возможно при помощи оператора echo — в коде вызова функции (данном чуть выше) организовать примерно такую строку:

как видите, пример — имя раздела «Теги».

Возможно, будет кому-то полезна статья о том, как закрыть метки (теги) от роботов — либо nofollow либо AJAX .

Либо же — к вашим услугам плагин «Закрытых меток» по метОде AJAX …

Тем, которые не знают:

вывод блоков меток для конкретной рубрики возможно организовать и ещё более тонко (или в сайдбаре/виджете, либо в коде) — например, запретить вывод блока меток на главной странице, в конкретном архиве рубрик/меток и пр. или статье, а в каких-то иных архивах напротив — разрешить…

Если изучите статью Условные теги WordPress — полная подборка, пояснения то у вас всё получится так, как требуется для вашего бизнеса.

css для вывода меток привязанных к конкретной категории

Вот примерный CSS код для описанного в статье вывода блока меток для отдельных рубрик: код дан для примера, так что можете его смело редактировать в соответствии со стилистикой своего сайта.

выводим метки только для конкретной рубрики

Код, показанный ниже, призван выводить метки только для текущей рубрики (раздела сайта). Таким образом функция отработает для каждой категории свои собственные метки (теги)!

Помещать в файл функций functions.php активного шаблона и выводить в том месте, где следует… В сайдбаре или в файлах шаблона.

Внимание! в записях — код правильно работать не будет — в записях метки будут отображены все, которые имеются на сайте. Поэтому, если нужно чтобы в записях были показаны метки текущей категории, к которой относится запись, используйте код выше — ПЕРВЫЙ вариант!

…далее… вызываем функцию там, где требуется кодом, показанным ниже: (со ссылкой возможно работать по своим усмотрениям — закрыть ссылки в либо nofollow либо AJAX — как это делается, ссылки ВЫШЕ)

Код CSS использован что и для первого кода: span

Вот в принципе и всё, что хотелось сегодня рассказать…

Если что-то не ясно…

Михаил ATs — владелец блога запросто с Вордпресс — в сети нтернет давным-давно.

. веб разработчик студии ATs media: помогу в создании, раскрутке, развитии и целенаправленном сопровождении твоего ресурса в сети. — заказы, вопросы. разработка.

Вывод смежных категорий по id для текущей категории

Подскажите пожалуйста, как получить id категории, к которой относится текущая (просматриваемая) запись?

Нужно для того, чтобы в

выводились не жестко заданные номером в шаблоне записи, а записи из текущей категории.

Подскажите пожалуйста, как получить id категории, к которой относится текущая (просматриваемая) запись?

Нужно для того, чтобы в

выводились не жестко заданные номером в шаблоне записи, а записи из текущей категории.

04.07.2013, 17:15 #2
04.07.2013, 21:04 #3
05.07.2013, 08:33 #4
05.07.2013, 08:52 #5
05.07.2013, 13:04 #6

Можно. Судя по описанию топика, то в итоге скорее всего нужно сделать вывод новости типа «похожие новости», но исключительно из данной категории, в которой опубликована новость. Так же?
Есть хаки и модули для этого.

Я вот предложил ТУТ решение для примера.

Добавить комментарий
05.07.2013, 13:10 #7