Пользовательские типы сообщений и поля Wordpress

У меня есть два пользовательских типа сообщений…

КНИГА и КНИГА АВТОР.

Я бы хотел…

СПИСОК всех КНИГ автора на соответствующей СТРАНИЦЕ АВТОРА.

Итак, если у меня есть 10 книг Стивена КИНГА. Я хочу перечислить их все (и только его) на странице Стивена Кинга. У меня возникли серьезные проблемы с тем, чтобы понять, как запрашивать сообщения для этого.

Любой совет? Я использую расширенный плагин настраиваемых полей, если это помогает, но не могу понять, как запрашивать и отображать эту информацию о сообщении.

В настоящее время я использую следующий код для отображения ВСЕХ моих выпусков, но как мне получить определенные из них на страницах конкретных авторов?

<?php
     $args=array(
     'post_type' => 'book',
     'post_status' => 'publish',
     'posts_per_page' => 12,
     'caller_get_posts'=> 1,
     'orderby'=> 'date',
     'order' => 'DESC'
     );
     $my_query = null;
     $my_query = new WP_Query($args);
     if( $my_query->have_posts() ) {
     echo '';
     $i = 0;
     while ($my_query->have_posts()) : $my_query->the_post();
     if($i % 6 == 0) { ?>
<div class="row">    
<?php
}
?>

<img src="<?php the_field('cover_image'); ?>" /><br />
<?php the_field('author_name'); ?><br />
<?php the_title(); ?><br />

</div>

<?php    
if($i % 6 == 0) { ?> 

<?php
}

$i++;
endwhile;
 } 
wp_reset_query();
?>

person lowercase    schedule 05.02.2014    source источник


Ответы (2)


Я делал что-то подобное, но...

Основная проблема здесь в том, как вы классифицируете эти книги? Вы создали таксономии для этого? И эти таксономии на самом деле являются именами авторов? Я имею в виду, как вы синхронизируете, чтобы сказать, что книга принадлежит определенному автору?

person rgdesign    schedule 05.02.2014
comment
Имена авторов настроены как категории в Wordpress. Я использую их для фильтрации моих обычных сообщений в новостях/блогах на странице каждого автора. Возможно, мы можем прикрепить эти категории к каждой КНИГЕ, чтобы поместить их на страницу каждого АВТОРА? - person lowercase; 06.02.2014

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

Что я сделал в моем случае, так это создал функцию, которая после создания страницы автора создает таксономию с тем же именем и ярлыком. Таким образом, вам не нужно вручную создавать эти две вещи с одинаковым именем и ярлыком. Что-то типа:

<?php$myposts = get_posts(array(    'showposts' => -1,     'post_type' => 'books',     'tax_query' => array(        array(        'taxonomy' => 'author_book',         'field' => 'slug',         'terms' => array(AUTHOR_SLUG));    )));

обратите внимание, что AUTHOR_SLUG может быть массивом, например "pete", "paul".

"author_book" - это просто слаг таксономии. В вашем случае должно быть просто "category_cat"

Вы можете использовать эти аргументы с вашим циклом.

person rgdesign    schedule 06.02.2014
comment
Это выглядит лучше, но все еще не уверен в чем-то. Все мои страницы AUTHOR представляют собой динамически генерируемые пользовательские сообщения. Как мне узнать, какой пост я публикую, чтобы указать правильную категорию КНИГА? То есть я не могу создать 100 шаблонов для 100 авторов, чтобы назвать их уникальный слаг/категорию. Как узнать, что я нахожусь на странице Стивена Кинга и мне нужно принести только книги Стивена Кинга? - person lowercase; 06.02.2014
comment
Просто используйте ярлык поста в качестве ярлыка категории. создайте шаблон single-author.php, в нем будет эхо-слаг сообщения. Этот слаг вам нужно использовать в качестве термина категории в запросе. - person rgdesign; 06.02.2014