Problém s funkcí query_post při stránkování

Jestliže v šabloně z nějakých důvodů nevystačíme se standardním načtením článků pomocí konstrukce

/—code php
if (have_posts()) : while (have_posts()) : the_post();
\—

a potřebujeme využít funkci „query_posts()“:http://codex.wordpress.org/Function_Reference/query_posts například pro vyloučení některých kategorií, tagů, autora a podobně, typicky v podobě:

/—code php
// 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á:

/—code php
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“:http://www.separatista.net/wordpress/tipy-a-triky/problemy-se-strankovanim-prispevku-pri-pouziti-funkce-query_posts nebo „David Binda“:http://david.binda.cz/wordpress-nefunkcni-strankovani-v-dusledku-query_posts.

„Properly using wp_reset_postdata(), wp_reset_query() and variable naming in queries »“:http://www.poststat.us/properly-reset-wordpress-query/

„How to fix pagination for custom loops »“:http://wordpress.stackexchange.com/questions/120407/how-to-fix-pagination-for-custom-loops