• Как заменить конструкцию query_posts на get_posts?

    HeadOnFire
    @HeadOnFire
    PHP, Laravel & WordPress Evangelist
    Во-первых, форматируйте код адекватно, эти длинные строки читать - адски неудобно (особенно отлавливать ваши двойные $$, лишние скобки и тд):

    // Параметры удобнее задавать отдельно
    $args = array(
        'post_type' => APP_POST_TYPE,
        'ignore_sticky_posts' => true,
        'meta_query' => array( 
            array(
                'key' => 'cp_category', 
                'value' => 'Не определено', 
                'compare' => '=',
            ),
        ), 
    );
    // Получаем массив постов.
    $categories = get_posts( $args );
    
    // Перебираем массив, обязательно as $post, чтобы корректно работала функция setup_postdata()
    foreach( $categories as $post ) {
        // Устанавливаем текущую запись в глобальный scope
        setup_postdata( $post );
        // Подключаем шаблон, который уже сможет видеть корректные данные из глобального scope
        get_template_part( 'loop', 'ad_listing' ); 
    }
    // Очищаем глобальный scope
    wp_reset_postdata();

    Не тестил, но должно работать.
    Ответ написан
    9 комментариев