ИТ Блог. Администрирование серверов на основе Linux (Ubuntu, Debian, CentOS, openSUSE)

Как объединить два wp_query в одном главном запросе

Как объединить два wp_query в одном главном запросе

Иногда нам нужно выполнить два условия и объединить их в одном 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 );
 
?>

 

Exit mobile version