Пользовательская таксономия wp_query беды.

Вот краткое описание настройки:

«Искусство» CPT – это место, где загружаются все художественные и художественные описания. В этом CPT вы можете выбрать категорию (пользовательскую таксономию) искусства – живопись, украшения, скульптура и т. Д. Это позволяет мне иметь страницу, отображающую все искусство, которое можно фильтровать с помощью изотопа. Я также разделяю таксономии между двумя КПП.

«Исполнитель» CPT – это место, где все биографии художника будут (на сайте в конечном итоге будет около 50 художников), поэтому я создал CPT для управления ими). В этом CPT вы можете выбрать категорию (пользовательскую таксономию) имени артиста (у нее есть родительская категория «Художники»), и я также использую таксономию Искусства, хотя пока не вижу смысла.

Что я хочу:

Когда вы нажимаете на страницу художников, которая является single-the-artist.php, все данные исполнителя отображаются с одной страницей – название и биография исполнителя перечислены в CPT «The Artist». Под их биографией я пытаюсь получить все искусство, присвоенное им в рамках «Искусственного» CPT по имени пользователя, так называемой таксономии.

Таким образом, у меня есть таксономия, и это то, о чем я думаю, что я запрошу:

Художники

—– Индивидуальное имя исполнителя

—– Индивидуальное имя исполнителя

—– Индивидуальное имя исполнителя

Я знаю, что мне нужно получить текущую таксономию, но у меня есть время, чтобы понять, как это сделать. Я пробовал get_children_terms, get_terms, wp_get_object_terms, и мне ничего не кажется, что мне нужно идти.

Запрос, который я использую в настоящее время, – это тянуть все искусство, но в то время мне нужно искусство для этого конкретного исполнителя.

Вот мой запрос:

<?php $term_slug = get_query_var( 'the-art' ); $taxonomyName = get_query_var( 'art-category' ); $args = array( 'post_type' => 'the-art', 'order' => 'rand', 'posts_per_page' => -1, $taxonomyName => $term_slug ); $art_work = new WP_Query(); $art_work->query($args); while ($art_work->have_posts()) : $art_work->the_post(); ?> // do loop stuff here <?php endwhile; wp_reset_postdata(); ?> 

TIA за любую помощь, которую вы можете предложить.

Это последняя часть на этом сайте pro-bono, и я хочу с этим покончить. 🙂

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

То, что вы пытаетесь сделать, не работает. Сделайте var_dump() чтобы получить доступные переменные запроса на одной странице

 ?><pre><?php var_dump($wp_query->query_vars); ?></pre><?php 

Вы увидите, что следующие недопустимые

 $term_slug = get_query_var( 'the-art' ); $taxonomyName = get_query_var( 'art-category' ); 

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

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

  • wp_get_post_terms

  • get_the_terms

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

В итоге мне пришлось использовать плагин Post 2 Post, чтобы заставить его работать. По-видимому, WP не очень хорош в создании отношений на данный момент, поэтому необходима помощь плагина. После долгих поисков, это решение, с которым я столкнулся, и у меня нет связи с создателем плагина … просто счастлив, что он решил мою проблему.

Описание на странице WP Plugin:

Этот плагин позволяет создавать отношения «многие ко многим» между сообщениями любого типа: «пост», «страница», «пользовательский» и т. Д. Несколько примеров использования:

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

Кроме того, вы можете создавать отношения «многие ко многим» между сообщениями и пользователями. Таким образом, вы также можете реализовать:

  • любимые сообщения пользователей
  • несколько авторов за сообщение
  • и т.п.

Документацию можно найти здесь: https://github.com/scribu/wp-posts-to-posts/wiki

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