Jestliže v šabloně z nějakých důvodů nevystačíme se standardním načtením článků pomocí konstrukce
if (have_posts()) : while (have_posts()) : the_post();
a potřebujeme využít funkci query_posts() například pro vyloučení některých kategorií, tagů, autora a podobně, typicky v podobě:
// výběr článků z vybraných rubrik
query_posts('cat=2,6,17,38');
// výběr článků patřících do několika rubrik současně
query_posts(array('category__and' => array(2,6)));
// výběr článků s vyloučením určité rubriky
query_posts('cat=-3');
Rychle zjistíme, že tento postup sice vede k cíli, nicméně přestane fungovat stránkování a tím i pluginy jako např. výborný „WP-PageNavi“:222.
Náprava je jednoduchá:
if (have_posts()):
// obnovíme parametr 'paged'
$paged = (get_query_var('paged')) ? get_query_var('paged') : 1;
query_posts("cat=-3&paged=$paged");
// a pak už pokračujeme standardním
while (have_posts()) : the_post();
Viz též Separatista nebo David Binda
Properly using wp_reset_postdata(), wp_reset_query() and variable naming in queries »
