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

  • Всем привет. К примеру есть кастомный иерархический тип записей, в каждой терме название записей состоит из 1 слова и 99% названий в трех термах совпадают. Нужно сделать алфавитный указатель по каждому слову который ведет на страницу из записей с таким названием. Что бы названия из каждой термы не дублировались, хочу прикрепить к каждой записи что-то вроде тега(есть способ проще?) и в алф. указатель выводить уже эти «теги» а не названия постов. Как я понимаю надо новый таксономи древовидный сделать, верно? А как поставить, чтобы название этого тега создавалось автоматически с записью и было равно названию записи и не дублировалось?

Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Модератор Sergey Biryukov

    (@sergeybiryukov)

    Live and Learn

    Перечитал три раза, ничего не понял 🙂

    Можно с примерами?

    Да, я что-то вопрос не в ту сторону уточнил…

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

    1 Значение цветов
      1.1 В культуре №1
          1.1.1 Красный
          1.1.2 Черный
          1.1.3 Зеленый
      1.2 В культуре №2
          1.2.1 Красный
          1.2.2 Черный
          1.2.3 Бежевый

    Так вот, надо чтобы при создании поста с названием «Желтый», к нему автоматически ставилась метка «желтый».

    P. S. Соответственно без сторонних плагинов.

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

    без сторонних плагинов.

    с помощью магии?

    O

    (@perdyllo)

    чтобы при создании поста с названием «Желтый», к нему автоматически ставилась метка «желтый».

    А вручную добавить метку это сложно и долго? Или у вас и посты будут генерироваться автоматически и в неимоверных количестве?

    В конце концов в WP есть штатные инструменты для массового редактирования записей. В том числе и массового добавления меток. Есть и плагины для управления таксономиями.

    P.S.

    Соответственно без сторонних плагинов

    Только не надо нести характерную для новичков ахинею типа «делаю сайт без плагинов».

    • Ответ изменён 6 мес. назад пользователем  O.

    Решение было в «трех» строчках кода, оставлю здесь, если кто искать будет:

    function set_tag_on_publish($post_id,$post) {
          wp_set_post_tags( $post_id, 'tag', false );
      }
    add_action('save_post','set_tag_on_publish',0,2);

    А вручную добавить метку это сложно и долго?

    Сложно.

    Только не надо нести характерную для новичков ахинею типа «делаю сайт без плагинов».

    А вы из тех «профессионалов», которые ради одной строчки кода ставят тонны чужого кода от индусов, в котором время от времени бэкдоры находят? Спорить не буду, дело ваше. Удачи вам 🙂

    Решение было в «трех» строчках кода, оставлю здесь, если кто искать будет:

    данный код добавляет каждому посту метку «tag».
    так что мне не совсем понятно, как это решает вашу задачу.

    данный код добавляет каждому посту метку «tag».
    так что мне не совсем понятно, как это решает вашу задачу.

    Ну каждый меняет на что хочет, в моем случае, если уж совсем топорно писать, то получится следующее:

    function set_tag_on_publish($post_id) {
          wp_set_post_tags( $post_id, get_the_title($post_id), false );
      }
    add_action('save_post','set_tag_on_publish',0,1);
Просмотр 7 ответов — с 1 по 7 (всего 7)
  • Тема «Сделать тег равным названию поста без дублирования» закрыта для новых ответов.