WordPress Query: показ первого идентификатора только при использовании переменной - PullRequest
0 голосов
/ 20 марта 2020

Я в недоумении, почему мой запрос не работает должным образом.

У меня есть переменная $id_list, которая печатает список идентификаторов сообщений, которые я хочу показать.

$ id_list - это список идентификаторов записей через запятую. Он преобразуется из массива идентификаторов записей, выбранных на странице параметров ACF.

Массив:

Array ( 
[0] => Array ( [center_post] => 23836 ) 
[1] => Array ( [center_post] => 23716 ) 
[2] => Array ( [center_post] => 3344 ) 
)

Код для преобразования массива в разделенный запятыми список:

$centre_arr = get_field('centre_posts', 'option');
$final = "";
foreach($centre_arr as $innerarray){
  foreach($innerarray as $id){
  $final .= $id.", ";
  }
}

$id_list = substr($final,0,-2);

Когда я echo $id_list;, я получаю список идентификаторов через запятую, например, '23836, 23716, 3344'. Если я вставлю этот вывод непосредственно в запрос, чтобы заменить $id_list, то все будет работать нормально.

Мой запрос WordPress выглядит так:


<?php

$args = array(
'posts_per_page'    => -1,
'post_type' => array('features', 'reviews'),
'orderby' => 'post__in', 
'post__in' => array( $id_list )
);

$the_query = new WP_Query( $args );

?>

Это только возврат первого сообщения в массив и ничего другого.

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

Я попытался отобразить запрос, но это не работает.

1 Ответ

0 голосов
/ 20 марта 2020

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

$id_list_arr = explode(" ",$id_list);

$args = array(
'posts_per_page'    => -1,
'post_type' => array('features', 'reviews'),
'orderby' => 'post__in', 
'post__in' =>  $id_list_arr
);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...