Usando o pre_get_posts para definir postagens por página, como eu faço?

3

Estou tentando usar pre_get_posts para definir postagens por página para um único termo em uma taxonomia. Uma coisa que está me deixando de fora é definir o termo para aplicar o pre_get_posts a.

Aqui está o meu código:

function filter_press_tax( $query ){
if( $query->query_vars['tax_query']['taxonomy'] == 'press' && $query->query_vars['tax_query']['terms'][0] == 'press' ):
    $query->query_vars['posts_per_page'] = 5;
    return;
endif;
}//end filter_press_tax

Não estou entendendo como acessar a taxonomia e o termo na consulta $. Sim, a taxonomia e o termo têm o mesmo nome. Isto é uma má ideia? Eu não tenho uma consulta personalizada configurada no modelo taxonomy-press-press.php para o 'tax_query', este é o problema?

Qualquer ajuda é apreciada! Obrigado

    
por dkmojo 02.04.2012 / 17:12

1 resposta

10

Você está quase lá, cara. Tente isso embora.

<?php
    add_action('pre_get_posts', 'filter_press_tax');

    function filter_press_tax( $query ){
        if( $query->is_tax('press') && $query->has_term('press')):
            $query->set('posts_per_page', 5);
            return;
        endif;
    }
?>

Você pode usar qualquer tag condicional ou qualquer argumento que possa ser passado para WP_Query para testar sua condição ou definir um novo valor via pre_get_posts . Experimente também $query->get('taxonomy') / $query->get('term') . E verifique este para $query definir e obter métodos.

    
por Rutwick Gangurde 02.04.2012 / 17:30