WP_Query — Loop customizado com paginação

Time Full Services Time Full Services
Tipo Funções nativas
Nome do erro WP_Query — Loop customizado com paginação
Severidade Informativo
Desde WordPress 1.5
Descrição Classe principal do WordPress para construir consultas ao banco de dados. Suporta paginação, filtros por taxonomia, meta e muito mais.

Causa

O loop padrão do WordPress não é suficiente quando você precisa de múltiplos loops ou consultas complexas com filtros combinados.

Como resolver

Instancie WP_Query com os argumentos necessários. Sempre chame wp_reset_postdata() ao final para restaurar o post global.

PHP
<?php
$paged = get_query_var('paged') ? get_query_var('paged') : 1;

$query = new WP_Query([
    'post_type'      => 'produto',
    'posts_per_page' => 12,
    'paged'          => $paged,
    'post_status'    => 'publish',
    'tax_query'      => [[
        'taxonomy' => 'categoria_produto',
        'field'    => 'slug',
        'terms'    => 'eletronicos',
    ]],
    'meta_query'     => [[
        'key'     => '_preco',
        'value'   => 100,
        'compare' => '>=',
        'type'    => 'NUMERIC',
    ]],
]);

if ($query->have_posts()) {
    while ($query->have_posts()) {
        $query->the_post();
        echo '<div>' . get_the_title() . '</div>';
    }
    echo paginate_links(['total' => $query->max_num_pages]);
}
wp_reset_postdata();

Seja PRO.

Tenha acesso a snippets de código premium — PHP, JavaScript, CSS e HTML prontos para usar em seus projetos.

Conhecer o plano Pro →