Множественные запросы типов записей (с определенными аргументами для каждого)

1 июн. 2012 г., 12:13:44
Просмотры: 27K
Голосов: 1

Я знаю, как объединить типы записей в 1 цикл и вывести их. Вот что у меня есть:

        <?php

        $args = array(
            'post_type' => array('post','movie','actor'),
            'posts_per_page' => '20',
        );

        query_posts( $args );
        while ( have_posts() ) : the_post(); 

            the_title();

        endwhile; 

        ?> 

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

Например, мне нужно добавить аргумент meta_key=value для типов записей movie и actor. Это возможно?

0
Все ответы на вопрос 1
1

Можешь сделать что-то подобное?

<?php

    $args = array(
        'post_type' => array('post','movie','actor'),
        'posts_per_page' => '20',
    );

    query_posts( $args );
    while ( have_posts() ) : the_post(); 

        global $post;

        if (($post_type == 'movie') && (get_post_meta($post->ID, 'meta_key', true) == 'your-value')) {

             // Отображаем контент для типа записи Movie с установленным мета-значением

         } else if (($post_type == 'actor') && (get_post_meta($post->ID, 'meta_key', true) == 'your-other-value')) {     

             // Отображаем контент для типа записи Actor и другого мета-значения

         }    

    endwhile; 

    ?> 
1 июн. 2012 г. 19:58:14
Комментарии

Спасибо за ответ. Да, на данный момент это единственный способ, который я нашел для решения проблемы. Однако это нарушает аргумент posts_per_page в исходном запросе, так как не у каждой записи есть указанные мета-значения. Но, возможно, придется с этим смириться :/

Carpy Carpy
2 июн. 2012 г. 19:24:14