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