Страница параметров темы Wordpress query_posts

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

в настоящее время у меня есть возможность вручную ввести IDS страниц WordPress для извлечения данных с помощью query_posts

на основе параметров темы создается переменная с именем $euro_box_1_vehicles;

мои параметры заполнены как 32,39,43,54 на входе, и когда я печатаю это выражение с помощью эха, я получаю тот же результат.

Когда я просто заменяю array(32,39,43,45) на array($euro_box_1_vehicles), он возвращает только один результат.

<?php
    $vehicle1 = array(
        'post__in' => array(32,39,43,45),
        'post_type' => 'page',
    );

    query_posts( $vehicle1 ); 
    while (have_posts()) : the_post(); 
?>

person ApPeL    schedule 24.11.2010    source источник
comment
Попробуйте var_dump($euro_box_1_vehicles) и сообщите нам, что будет напечатано.   -  person TheDeadMedic    schedule 24.11.2010
comment
Когда я повторяю var_dump = string(11) 32,39,43,45   -  person ApPeL    schedule 24.11.2010
comment
@TheDeadMedic, добавил результат для вас.   -  person ApPeL    schedule 29.11.2010


Ответы (2)


Когда я повторяю var_dump = string(11) "32,39,43,45"

В этом случае вам нужно расчленить $vehicle1, так как post__in ожидает массив;

query_posts(array(
    'post_type' => 'page',
    'post__in' => @explode(',', $vehicle1)
));
person TheDeadMedic    schedule 30.11.2010

Обновить

Когда я просто заменяю массив (32,39,43,45) массивом ($euro_boxarray(32,39,43,45)vehicles), он возвращает только один результат.

Не следует ли заменить array(32,39,43,45) на $euro_box_1_vehicles не array($euro_box_1_vehicles)? Последнее, похоже, создаст вложенный массив с одним аргументом, то есть массив (массив (32,39,43,45)). Это не то, что вы хотите.


Старый ответ....

Если я вас правильно понял, то query_posts() ожидает список идентификаторов? (32,39,43,45)

Но когда вы передаете ему $vehicle1, вы передаете ему не список идентификаторов, а двумерный массив.

<?php
    $vehicle1 = array(
        'post__in' => array(32,39,43,45),
        'post_type' => 'page',
    );

    query_posts( $vehicle1['post_in'] ); //use sub-array that contains list
    while (have_posts()) : the_post(); 
?>
person Eddie    schedule 24.11.2010
comment
Нет, Эдди, @ApPel все правильно понял — query_posts() ожидает массив аргументов, а post__in — это конкретный аргумент, который ожидает массив идентификаторов. - person TheDeadMedic; 24.11.2010