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á 10 let, 6 měsíců.
-
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.
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…
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”
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…
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?
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).
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.
Aha, takže zkuste ještě změnit následující řádek:
if ( is_author() ) {
na:
if ( is_author() && $query->is_main_query() ) {
Ano, už je to OK, děkuji za pomoc!
Perfektní, dotáhli jsme to do konce :-) Na podmínku is_main_query() jsem zapomněl…
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.
WordPress – novinky, návody a zajímavosti