Поддержка Проблемы и решения Создание рубрик из набора рубрик и меток

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

    Например:

    Рубрика — Происшествия

    Метка — Париж

    Новая рубрика — Происшествия в Париже

    Сюда выведутся все записи из рубрики Происшествия и метки Париж.

    Какими хуками воспользоваться, чтобы создать новую рубрику и вывести туда соответствующие записи?

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Добрый день.

    Это можно реализовать разными путями. И с помощью плагина Advanced Custom Fields и ему подобных. Можно для создания новой таксономии в WordPress воспользоваться хуками init и register_taxonomy и т.д и т.п.

    Как вариант могу предложить следующее:

    $term1 = get_term_by( 'name', 'Происшествия', 'category' ); // получаем объект рубрики
    $term2 = get_term_by( 'name', 'Париж', 'post_tag' ); // получаем объект метки
    
    if ( $term1 && $term2 ) {
       $terms = array( $term1->term_id, $term2->term_id ); // создаем массив с ID рубрики и метки
       wp_set_object_terms( $post_id, $terms, 'proisshestviya-v-parizhe', true ); // добавляем термины к записи
    }

    Можно воспользоваться функцией wp_set_object_terms(). Эта функция позволяет добавлять термины (т.е. рубрики и метки) к указанному объекту (например, к записи) и создавать новые таксономии при необходимости.

    В данному случае сначала получаем объекты рубрики и метки с помощью функций get_term_by(). Затем создаем массив с их ID и добавляем его к записи с помощью функции wp_set_object_terms(), указывая новую таксономию proisshestviya-v-parizhe.

    Таким образом, при сохранении записи с указанными рубрикой и меткой будет автоматически создана таксономия proisshestviya-v-parizhe и запись будет отображаться в ней. Если таксономия уже существует, то функция wp_set_object_terms() просто добавит новую запись в нее без создания дубликатов.

    Я не совсем правильно выразился, новую таксономию я уже создал, вот в ней нужно только автоматически создавать термины по тому примеру, который я описал.

    Спасибо, посмотрю что Вы предложили.

    • Ответ изменён 1 год, 1 месяц назад пользователем w1ns.

    Вы хотите создавать при изменениях контента или создать один раз, просканировав контент?

    Сейчас попробую описать механизм.

    Есть дефолтные рубрики и метки

    Рубрики:
    Происшествия
    Скандалы
    Банки
    Гражданство

    Метки:
    Париж
    Испания
    Англия

    Я создал еще кастомную таксономию Категории, куда хочу автоматически создавать термины из набора Рубрика + метка

    Например:

    Происшествия Париж или Скандалы Испания

    Получается так, если в составе Рубрика + Метка есть хоть одна запись, в таксономии Категории создается термин из названия Рубрика + Метка и этот термин привязывается ко всем записям, которые относятся к этим терминам(Рубрика + Метка), соответственно у термина появляется своя страница со всеми этими записями.

    Если после создания в такономии Категории в термине, например, Банки Англия не останется записей(они по какой то причине удалятся), тогда этот термин тоже удаляется.

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

Просмотр 4 ответов — с 1 по 4 (всего 4)
  • Тема «Создание рубрик из набора рубрик и меток» закрыта для новых ответов.