Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Stránkování článků na stránce profilu autora
Štítky: is_author(), is_main_query(), pre_get_posts, profil autora, Stránkování
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á 13 let, 1 měsíc.
-
AutorPříspěvky
-
30. srpna 2013 (9:10) #3628
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.
30. srpna 2013 (10:48) #16361Použijte akci
pre_get_postspro 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…
31. srpna 2013 (6:44) #16362Vyzkouš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”
31. srpna 2013 (7:55) #16363To 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…
31. srpna 2013 (12:57) #16364Nyní 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 63Nevím, jestli to může být způsobeno tím, že používám plugin WooCommerce Product Archive Customiser?
2. září 2013 (13:41) #16365Teď 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
<?phpnebo 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).2. září 2013 (14:06) #16366Má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.
2. září 2013 (14:09) #16367Aha, takže zkuste ještě změnit následující řádek:
if ( is_author() ) {na:
if ( is_author() && $query->is_main_query() ) {2. září 2013 (14:13) #163682. září 2013 (14:37) #16369Perfektní, dotáhli jsme to do konce :-) Na podmínku is_main_query() jsem zapomněl…
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.