Acredito que a melhor maneira de fazer isso em um plug-in é executar a seguinte função de amostra quando o gancho de ação pre_get_posts
for encontrado. O objeto $wp_query
está disponível, o que significa que as tags condicionais estão disponíveis, mas antes que o WordPress obtenha as postagens, o que significa que você está alterando as consultas antes da primeira consulta ser executada, em vez de adicionar uma segunda consulta como quando query_posts () em um arquivo de tema.
function custom_posts_per_page($query) {
if (is_home()) {
$query->set('posts_per_page', 8);
}
if (is_search()) {
$query->set('posts_per_page', -1);
}
if (is_archive()) {
$query->set('posts_per_page', 25);
} //endif
} //function
//this adds the function above to the 'pre_get_posts' action
add_action('pre_get_posts', 'custom_posts_per_page');