Come utilizzare pre_get_posts per impostare i post per pagina?
Sto cercando di utilizzare pre_get_posts per impostare il numero di post per pagina per un singolo termine all'interno di una tassonomia. Una cosa che mi confonde è come impostare il termine a cui applicare il filtro pre_get_posts.
Ecco il mio codice:
function filter_press_tax( $query ){
// Verifica se la query è per la tassonomia 'press' e il termine 'press'
if( $query->query_vars['tax_query']['taxonomy'] == 'press' && $query->query_vars['tax_query']['terms'][0] == 'press' ):
// Imposta il numero di post per pagina a 5
$query->query_vars['posts_per_page'] = 5;
return;
endif;
}//end filter_press_tax
Non capisco bene come accedere alla tassonomia e al termine nell'oggetto $query. Sia la tassonomia che il termine hanno lo stesso nome. È una cattiva idea? Non ho una query personalizzata impostata nel template taxonomy-press-press.php per il 'tax_query' - è questo il problema?
Ogni aiuto è apprezzato! Grazie

Ci sei quasi amico. Prova però questo.
<?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;
}
?>
Puoi usare qualsiasi tag condizionale o qualsiasi argomento che può essere passato a WP_Query
per testare la tua condizione o impostare un nuovo valore tramite pre_get_posts
. Prova anche $query->get('taxonomy')
/ $query->get('term')
.
E controlla questo per i metodi set e get di $query
.

Grazie per questo! La funzione is_tax funziona perfettamente, ma ancora non riesco a impostare il termine. has_term restituisce un errore e utilizzare get('term') non applica i post per pagina. Ho provato a usare get('term') == slug, id e valori del nome ma senza successo. Poi ho provato anche $query->query_vars['term'] senza fortuna. Devo ancora aver perso qualcosa. Ho esaminato l'oggetto stdClass $query qui: http://codex.wordpress.org/Plugin_API/Action_Reference/pre_get_posts e non vedo un valore 'term' o has_term nella lista. Funziona finché non provo a impostare il termine. Strano.

Prego! Vuoi impostare il termine? Fammi dare un'occhiata e vediamo come si può fare.

Grazie! Per il momento funziona bene e l'altro termine nella tassonomia press, chiamato online reviews, non è troppo influenzato. Non vedo l'ora di vedere se troverai qualcosa che potrebbe essere utile. :)
