Stránkování článků na stránce profilu autora

Úvodní stránka Fórum podpory WordPressu Problémy s WordPressem Stránkování článků na stránce profilu autora

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

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

    Petr
    Participant
    Web

    Na stránce profilu autora se zobrazují příspěvky, které jsou stránkovány podle čísla v nastavení/zobrazování.

    Potřeboval bych pro výpis článků v profilu autora nastavit jiný počet zobrazených příspěvků na stránku než např. v kategoriích, kde chci ponechat 5.

    Nepodařilo se mi najít nějaký plugin, který by to řešil, takže bych potřeboval poradit, jak to udělat jinak. Díky.

    #16361

    admin
    Keymaster
    Web

    Použijte akci pre_get_posts pro změnu počtu zobrazovaných položek (manuál) společně s funkcí is_author(). Teoreticky tak stačí vložit do souboru functions.php následující kód (číslo 10 je počet příspěvků na stránce autora):

    function separatista_pocet_pro_autora( $query ) {
    if ( is_author() ) {
    $query->set( 'posts_per_page', 10 );
    return;
    }
    }
    add_action( 'pre_get_posts', 'separatista_pocet_pro_autora' );

    Netestováno…

    #16362

    Petr
    Participant
    Web

    Vyzkoušel jsem, kód jsem vložil na konec souboru functions.php, ale poté web hlásí chybu “Fatal error: Call to undefined function add_action() in /www_root/wp-includes/functions.php on line 4052”

    #16363

    admin
    Keymaster
    Web

    To je podivné, vložil jste to do souboru functions.php v adresáři s aktuálně používanou šablonou? WordPress má ještě jiný soubor functions.php, který se ale neupravuje…

    #16364

    Petr
    Participant
    Web

    Nyní jsem kód vložil do functions.php v adresáři šablony, nicméně opět to píše chybu:

    function separatista_pocet_pro_autora( $query ) { if ( is_author() ) { $query->set( 'posts_per_page', 10 ); return; } } add_action( 'pre_get_posts', 'separatista_pocet_pro_autora' );
    Warning: Cannot modify header information - headers already sent by (output started at /www_root/wp-content/themes/organic-verbage/functions.php:358) in /www_root/wp-content/plugins/woocommerce/classes/class-wc-session-handler.php on line 63

    Nevím, jestli to může být způsobeno tím, že používám plugin WooCommerce Product Archive Customiser?

    #16365

    admin
    Keymaster
    Web

    Teď jsem to zkoušel a funguje to bez problémů. Podle té chyby to vypadá, že jste to sice vložil do souboru functions.php, ale buď před <?php nebo za ?> označení PHP syntaxe. Vložte to nakonec, ale před ukončení PHP syntaxe ?>. Úpravy provádějte buď přímo v editoru WordPressu nebo pomocí nějakého specializovaného textového editoru (např. PSPad), aby se tam nevytvořil problém s BOM (nepoužívejte Poznámkový blok).

    #16366

    Petr
    Participant
    Web

    Máte pravdu, nyní jsem kód vložil na konec souboru, ale před ?> a funguje to.

    Jenom to z nějakého důvodu ovlivňuje na stránce profilu autora i widget “Nejnovější příspěvky”, kde mám nastaveno 7, všude na webu se zobrazuje 7 příspěvků, jen na stránce autora to zobrazuje počet dle čísla v kódu.

    #16367

    admin
    Keymaster
    Web

    Aha, takže zkuste ještě změnit následující řádek:

    if ( is_author() ) {

    na:

    if ( is_author() && $query->is_main_query() ) {

    #16368

    Petr
    Participant
    Web

    Ano, už je to OK, děkuji za pomoc!

    #16369

    admin
    Keymaster
    Web

    Perfektní, dotáhli jsme to do konce :-) Na podmínku is_main_query() jsem zapomněl…

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

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