Stránkování archivu nefunguje

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Stránkování archivu nefunguje

Zvolené téma obsahuje celkem 4 odpovědi. Do diskuze (2 účastníci) se naposledy zapojil uživatel  admin a poslední změna je stará 6 let, 4 měsíce.

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)
  • Autor
    Příspěvky
  • #18696

    sjiamnocna
    Participant
    Web

    Ahoj. Nějak mi vůbec nechce fungovat stránkování archivu :( Už jsem jej několikrát předělával, zkoušel jsem návody, dokonce i zkopírovat části z Twentyfourteen, ale marně… Buď se mi čísla vůbec nevypíší, anebo mi Query číslo stránky ignoruje, a vyhazuje vždy stranu první (přes veškeré parametry v URL i v Query)
    Aktuální kód z tohoto návodu, nenapíše nic:

    function ks_theme_paginate_archive() {
    $pagination = array(
    	'base' =>str_replace('91919', '%#%', get_pagenum_link(91919)),
    	'format' =>'page/%#%',
    	'total' =>ceil($wp_query->found_posts/get_settings('posts_per_page')),
    	'current' =>absint(get_query_var('paged')),
    	'show_all' => false,
    	'prev_next' => true,
    	'prev_text' => __('« Previous'),
    	'next_text' => __('Next »'),
    	'end_size' => 3,
    	'mid_size' => 5,
    	'type' => 'plain',
    	'add_args' => false,
    	'add_fragment' => ''
    );
    echo paginate_links($pagination);
    }

    Vidět naživo to můžete tady
    Víte, čím by to mohlo být?

    #18792

    sjiamnocna
    Participant
    Web

    No prozatím to řeším pluginem http://wordpress.org/plugins/paginate/
    ale není to moc šťastné… Kdyby někoho něco napadlo, byl bych rád

    #18796

    admin
    Keymaster
    Web

    Nemůže to fungovat z jednoho jednoduchého důvodu. Ve funkci je pro celkový počet příspěvků použita hodnota $wp_query->found_posts, ale v samostatné funkci není definována (a tedy se nepřenáší z hlavního loopu). Musíte buď na začátku funkce použít global $wp_query; nebo raději rovnou nahradit hodnotu $wp_query->found_posts pomocí globálního pole $GLOBALS['wp_query']->found_posts. Celou definici funkce bych také spíše přesunul do souboru functions.php a v dalších souborech šablony ji už pouze volal.

    Proč není použití pluginu šťastné? Funkce paginate_links() sice existuje a můžete se ji naučit, ale osobně pro tyto účely používám plugin WP-PageNavi a jsem velmi spokojen a nemám s ním žádné problémy

    #18799

    sjiamnocna
    Participant
    Web

    Tak problém byl opravdu v tomto detailu, ale taky i v tom, že v archivu používám query_posts, k určení počtu příspěvků na stránce, nevím proč to tak dělá, ale použitím se přebily jakékoliv nastavení (např. která kategorie, stránka…)

    Ještě k tomu pluginu:
    Osobně jsem toho názoru, že pluginem se má dohánět jen to, co není možno (nebo složitějším postupem) implementovat jinak. Ani nevím proč, pouze mám hrůzu z více pluginů (už tak jich tam mám 13)

    Díky :)

    #18800

    admin
    Keymaster
    Web

    Funkci query_posts() raději vůbec nepoužívat, místo ní stačí bez potenciálních problémů použít akci pre_get_posts.

    Někdy jsou pluginy opravdu zbytečné, ale v tomto případě (stránkování) bych spíše použil právě plugin. Nemusíte se bát počtu pluginů na webu, ale spíše jejich kvality a náročnosti. Můžete mít klidně 30 drobných pluginů a na rychlosti webu to nebude ani poznat. Nebo můžete mít jeden nekvalitní plugin a budou se dít velmi zajímavé věci :-)

Aktuálně je na stránce zobrazeno 5 příspěvků - 1. až 5. (z celkem 5)

Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.