Иногда нам нужно выполнить два условия и объединить их в одном WP_Query для отображения результата на сайте.
Как объединить два wp_query в одном главном запросе
Ниже приведен простой пример, как объединить два wp_queries в одном wp_queries и отобразить результат. Скопируйте приведенный ниже код и измените его в соответствии с вашими требованиями. Это простой и легкий код, в коде ниже мы использовали функцию array_merge()
, чтобы объединить два массива.
<?php $args = array( 'post_type' => 'post' , 'posts_per_page' => 6 ); $wp_query = new WP_Query( $args ); $args1 = array( 'post_type' => 'books' , 'meta_query' => array( array( 'numberposts' => -1, 'post_type' => 'books', 'key' => 'pubblic_in_home', // имя настраиваемого поля 'value' => '1', // matches exaclty "red", not just red. This prevents a match for "acquired" 'compare' => '==' ) ) ); $wp_query_args1 = new WP_Query( $args1 ); $result = new WP_Query(); // запуск загрузки содержимого в новый объект $result->posts = array_merge( $wp_query->posts, $wp_query_args1->posts ); // здесь можно применить какую-то сортировку по $result->posts // нам также нужно правильно установить счетчик постов, с тем чтобы включить зацикливание $result->post_count = count( $result->posts ); ?>