Поддержка Проблемы и решения Как объединить одинаковые значения разных меток?

  • В записи я вывожу актёров через созданную мною метку «Актёры». Каждый из актёров получает, таким образом, собственную страницу на сайте. Но я хочу добавить ещё группу «Актёры дубляжа», в которой могут быть указаны те же самые актёры, что и в таксономии «Актёры». Таким образом, они получают ещё одну страницу на сайте, т.е. у одного и того же актёра появляются 2 страницы: example.com/actors/vasilii-pupkin/ и example.com/according/vasilii-pupkin/
    Именно этих дублей и хотелось бы избежать. Есть ли иной способ реализации средствами WP?

    Пример того, что хотелось бы получить:
    Джеки Чан на странице указан как актёр, режиссёр и сценарист.

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • старая похожая тема

    Возможно поможет.

    Только ссылки нерабочие

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

    Я как раз на сайте использую плагин Advanced Custom Fields, только он у меня для других целей немного используется… и про функцию «Взаимоотношение», что в указанном вами сообщении, ничего не могу найти. Возможно, что функционал плагина изменился?

    Тип поля -> отношение -> объект записи.

    В общем нужно создать 2 типа записей — фильмы и люди.
    Затем для фильмов нужно создать 2 поля — актеры и режиссеры, в плагине выбираете Тип поля -> отношение -> объект записи
    Возвращаемый формат -> ID

    А разделить людей на актеры и режиссеры можно с помощь дополнительной таксономии типа меток. Т.е. одному человеку можно присвоить и актер и режиссер.

    вот у меня в базе более 1000 актёров, которые находятся в таксономии «Актёры»
    а если просто создать 2 записи «актёры» и «режиссёры», а затем указывать в «тип поля» > «отношение» > «таксономия» ту таксономию «Актёры», что у меня уже существует, при попытке вывода я получаю вместо меток сообщение «Array»

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

    При выборе в Тип поля -> отношение -> объект записи Возвращаемый формат -> ID
    тоже вылазит array

    тоже вылазит array

    видимо потому что массив

    Данные поля с именем actors я вывожу следующим образом:
    <?php $actors = get_field('actors');?>
    <?php echo '<h2>Актёры</h2>'.$actors; ?>

    И на выходе получаю Array

    Посмотрите что там.

    <?php 
    $actors = get_field('actors');
    print_r($actors);
    ?>

    Если массив id записей, то нужно еще по ним получить название связных записей

    я через <?php var_dump($actors); ?> уже посмотрел
    выходит что-то похожее на массив данных:
    array(2) { [0]=> object(WP_Term)#10512 (11) { ["term_id"]=> int(4035) ["name"]=> string(27)...

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

    Модератор Yuri

    (@yube)

    $tmp = array();
    foreach ($actors as $actor ) {
      $tmp[] = $actor->name;
    }
    echo implode(", ", $tmp);
    unset($tmp);
    
    foreach($actors as $value)
    	{
    		echo '<li>' . $value->name . '</li>';
    	}
    • Ответ изменён 4 года, 7 месяцев назад пользователем qwert555.

    Круто, спасибо!
    вот эта часть особенно понравилась: unset($tmp);
    Осталось ссылку теперь вернуть на метку, чтобы вывести что-то типа такого:
    echo '<a href="' . здесьСсылка . '">' . $value->name . '</a>';

    Модератор Yuri

    (@yube)

    ок, со ссылкой разобрался, спасибо:
    foreach ($actors as $actor ) {
    $lnk = '<a href="'.get_term_link((int)$actor->term_id, $actor->taxonomy).'">'.$actor->name.'</a>';
    $tmp[] = $lnk;}

    теперь такая ситуация:
    термин во втором поле создаётся, но запись к нему не привязывается.
    Если же в настройках поля ACF выставить Сохранение терминов >> Связать выбранные термины с записью, то при сохранении записи термы из второго поля записываются в первое, и получаются 2 поля с одинаковыми значениями.

Просмотр 15 ответов — с 1 по 15 (всего 16)
  • Тема «Как объединить одинаковые значения разных меток?» закрыта для новых ответов.