как объединить массив WPQuery с массивом PHP и использовать Loop для вывода результата

У меня есть обычно обычный WP_Query (получение 3 типа сообщений) для использования на странице блога. Это отлично работает.

Клиент хочет, чтобы изображения Instagram были включены и упорядочены по дате. У меня есть все настройки кода instagram и отлично работают, создавая отдельный массив. Суть в том, что мне нужно отформатировать этот массив столбцов Instagram в массив с похожими ключами для таких полей, как опубликованные.

Я хотел бы объединить эти массивы и использовать WP Loop для вывода. Кажется, что он растянулся, но решил, что я спрошу.

Solutions Collecting From Web of "как объединить массив WPQuery с массивом PHP и использовать Loop для вывода результата"

Технически вы можете объединить вещи в цикл, манипулируя полем своих posts (например, $wp_query->posts для основного запроса). WP имеет это public для видимости и доступа, как это имеет место.

Однако это не обычная техника, тем более, если вы планируете вводить что-то, что на самом деле не является сообщением.

Для такого вывода чаще встречается и выводит дополнительные данные в итерациях цикла. Наиболее типичным примером является доступ к $wp_query->current_post чтобы делать такие вещи, как «вывод после каждого третьего сообщения». Но вам решать, что проверить и какую логику включить.

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

 // Image Data $instagrams = array ( array ( 'post_id' => 1, 'image' => 'http://placekitten.com/200/300', ), array ( 'post_id' => 2, 'image' => 'http://placekitten.com/200/300', ), array ( 'post_id' => 3, 'image' => 'http://placekitten.com/200/300', ), ); // Transform the array where post_id is the key $hash = wp_list_pluck( $instagrams, 'image', 'post_id' ); // WP_Query arguments $args = array ( 'post_type' => array ( 'post' ), 'post_status' => array ( 'publish' ), 'posts_per_page' => '3', ); // The Query $query = new WP_Query( $args ); // The Loop if ( $query->have_posts() ) { while( $query->have_posts() ) { $query->the_post(); // the ID from the post $post_id = get_the_ID(); // becomes the key to the image array if ( isset( $hash[ $post_id ] ) ) { $image = $hash[ $post_id ]; echo $image; } } } wp_reset_postdata(); 

Другие методы включают использование массива для цикла с get_posts , пользовательский сортировка с помощью usort или повторное использование циклов с rewind_posts – просто зависит от того, насколько вы умны.