• есть новый тип поста «Видео».
    (1)
    У него должны быть таксо Режиссер(ы) и Актер(ы).
    Обе могут быть «несколькими». Решил привязкой таксо типа Метки.
    (2)
    Теперь вопрос. Режиссер может быть актером и наоборот (и может быть несколько).
    Кроме этого планируется тип постов «Интересные люди» и «Союзы» (объединения по профессии людей, например — Актеры,Режиссеры, и тд).

    Вопрос — как их всех увязать в одно? Никак у меня не придумывается как актеров с режиссерами объединить в (1), а про (2) вообще не знаю как реализовать. Пока выходит так, что в (1) должны быть дублирующиеся записи, а в (2) кроме как создания нового поста с завязыванием на него всех ранее созданных таксо, с гравировкой в дескрипшен с линком при нажатии — «основная статья тамто».

    есть идеи? 🙁

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    Перечитал три раза, так и не понял, что именно Вы хотите сделать. Надо это как-то более формализованно описать.

    Но, вроде как, одна из проблем — выбор записей по нескольким таксономиям?
    Это делается примерно так:

    $args = array(
    	'post_type' => 'post',
    	'tax_query' => array(
    		'relation' => 'AND',
    		array(
    			'taxonomy' => 'movie_genre',
    			'field'    => 'slug',
    			'terms'    => array( 'action', 'comedy' ),
    		),
    		array(
    			'taxonomy' => 'actor',
    			'field'    => 'term_id',
    			'terms'    => array( 103, 115, 206 ),
    			'operator' => 'NOT IN',
    		),
    	),
    );
    $query = new WP_Query( $args );

    Больше информации и примеров в документации.

    не не (хотя пример потом тоже пригодится, спасиб).

    еще раз.

    есть например 3 вида нового типа (типа «запись»): Видео (библиотека фильмов), Люди (биографии и интересные факты), Союзы (объединения, группы, коллективы, компании — истории возникновения, краткая информация).

    сейчас есть:
    таксономии Видео (типа «метки»): режиссеры(Р), актеры(А).
    надо добавить:
    таксономии Люди: Р?, А?, писатели, …, политики.
    таксономии Союзы: люди??, Р?, А?.
    реализовано пока только Видео (сайт тестовый, на его основе создам нормальный, как логикой разберусь, так что можно все переделать если что).

    В таксономии Р и А может входить один или несколько человек. Причем актер может быть режиссером и наоборот (Джекки Чан к примеру). Сейчас эти таксо реализованы как тип таксономии Метки, там можно вписывать одного или нескольких людей (ФИО). Получается, что записи в таксономиях Р и А — 1.дублируются. 2.запись из таксо А не является записью с таким же названием из Р.
    Если делать одну таксономию скажем Люди для добавления в тип постов Видео, то как их там растащить по Режиссерам и Актерам? Произвольные поля решил не юзать, а использовать свои таксономии (хотя грань тут прозрачная).
    Хочется чтобы все типы постов и рубрики были связанны, скажем добавляя в Видео человека в параметр Режиссеры (с возможностью больше одного добавить), его же можно было добавить и в Актеры и в рубрику(или тип?) Люди (или оттуда, блин вот дилемма) 🙂 Т.е. чтобы кликая на ФИО актера или режиссера с одним ФИО переход был бы на запись о нем в рубрике(или типе) Люди. А людей добавлять к типу записей Союзы (например в «союз режиссеров США» или «кинокомпания 20 век»). А сейчас получается что типы независимы между собой, так же как и таксономии Р и А.
    Сейчас более понятно?

    Если правильно вас понял.

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

    В общем пришлось это реализовать с помощью связей постов по произвольному полю.
    Пример http://frobi.ru/bitva-titanov-brauzernaja-igra-o-mire-drevnej/

    как видно 101XP в этой игре участвует в роли и издателя и разработчика(ссылки и на издат. и на разраб. ведут на одну страницу, а раньше это были разные таксономии)

    или вот пример http://frobi.ru/bitva-bogov-brauzernaja-igra-o-drevnegrecheskoj/
    тут издатель еще и рбк добавился.

    На самой странице компании просто указана роль компании, разработка или издание.

    Сама страница компания это не таксономия типа категории или метки, а обычная запись.

    да, понимаете правильно — привязать описание человека к полям нескольких типов постов. спасибо за пример.
    но использование произвольных полей выключает всю прелесть таксономий — каждый раз надо будет руками прописывать параметры и ссылки в каждой записи.
    еще идеи есть или это тупик (ограничения WP)?
    в идеале конешна (тут уже повесил вопрос) было бы решением привязать к одному типу записей как таксономию другой тип записей. но возможно ли это?

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

    Все делается с помощью плагина Advanced Custom Fields и с помощью его функции «Взаимоотношение».

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

    плагины не хочется использовать

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

    Модератор Denis Yanchevskiy

    (@denisco)

    WordPress-разработчик, denisco.pro

    плагины не хочется использовать

    Тогда добавьте пользовательское поле программно и выведите туда нужный список элементов.
    Поля добавляются и сохраняются через хуки add_meta_box и save_post. Записи можно получить с помощью функции get_posts. Ну и можно поискать какой-нибудь пример в интернете, например, такой.

    возможность связывания через Select заинтересовала.
    не поможете кодом?
    есть 2 новых типа записи, скажем z1,z2 с доп.полями в обоих p1,p2.
    как в z1 добавить поле p3, которое бы выбирало (несколько, с возможностью сохранения) z2->p1? или хотябы давало выбрать из всех записей z2 и сохранить названия?

Просмотр 9 ответов — с 1 по 9 (всего 9)
  • Тема «сложный вопрос» закрыта для новых ответов.