Úvodní stránka › Fórum podpory WordPressu › Problémy s WordPressem › Výpis příspěvků – vyjmutí nejnovějších 3 postů z výpisu
Štítky: Úprava šablony, Výpis příspěvků
Zvolené téma obsahuje celkem 3 odpovědi. Do diskuze (1 účastník) se naposledy zapojil uživatel LordGrey a poslední změna je stará 10 let, 10 měsíců.
-
AutorPříspěvky
-
23. října 2013 (20:01) #4854
Zdravím, potřeboval bych trochu poradit s úpravou výpisu příspěvků u WP šablony:
na titulní stránce mám slider, který zobrazuje 3 nejnovější příspěvky a jejich titulní obrázky, přičemž pod ním je klasický výpis nejnovějších příspěvků – no a problém je v tom, že v tom normálním výpisu se opět opakují ty tři nejnovější příspěvky, což už pochopitelně nechci když jsou jako nejnovější v tom slideru…
Takže hledám, jak upravit stávající kód tak, aby mi to na titulní stránce vypsalo příspěvky až od 4. nejnovějšího a další stránky se tomu přizpůsobily (tj. pokud mám stránkování po 5 příspěvcích, tak aby na titulní stránce byly příspěvky 4 – 8, na druhé logicky 9 – 13 atd…) Snad jsem to napsal srozumitelně:-)
Podle WP manuálu by toto měl zvládat parametr offset u query_posts, nicméně tento způsob způsobuje znefunkčnění stránkování – řešení tohoto známého problému by mělo být uvedeno zde, nicméně z mně neznámého důvodu mi tam uvedené řešení nefunguje… Možná to třeba jen vkládám na špatné místo, ale pořád mi to vypisuje všechny příspěvky, takže si s tím nevím rady…
Kód z výše zmíněného návodu vkládám (tak jak tam je) v index.php
mezi
if ( have_posts() ) :
a
while ( have_posts() ) : the_post();
Předem díky za pomoc!
24. října 2013 (19:01) #16675Tak hlásím pokrok:
Pochopitelně to musí být vloženo do functions.php a musí tam být i upravena podmínka (místo is_posts_page jsem dal is_home, když to chci na úvodní stránce). Teď už to pracuje korektně – při výpisu se první 3 příspěvky nezobrazí a i stránkování funguje tak jak má… ovšem je tu jeden docela kardinální problém – tahle úprava mi ovlivňuje všechny výpisy na úvodní stránce, tj. i onen slider a dokonce i widget s nejnovějšíma postama. Což je pochopitelně velmi nežádoucí – jakou tam mám dát podmínku, aby mi to bralo jen ten hlavní výpis u kterého to potřebuji? (is_main_query mi na tohle nefunguje…)
25. října 2013 (8:14) #16676Tak jsem opět trochu pokročil (koukám, že tu provozuju samo-poradnu:-D):
Našel jsem NÁVOD, který se výběru konkrétní query zabývá. Nicméně tento návod počítá s tím, že tam query začíná tímto “new WP_Query(…);”, což ale u sebe nemám, u mě to je pouze takto:
if ( have_posts() ) :
while ( have_posts() ) : the_post();
...atdJe nějaký způsob, jak tuto konkrétní query “vybrat” pro další zpracování, ať už podle toho návodu nebo jinak?
Pozn.: zkusil jsem tu druhou variantu z toho návodu:
// tell WordPress about our new query var
function wpse52480_query_vars( $query_vars ){
$query_vars[] = 'my_special_query';
return $query_vars;
}
add_filter( 'query_vars', 'wpse52480_query_vars' );
// check if our query var is set in any query
function wpse52480_pre_get_posts( $query ){
if( isset( $query->query_vars['my_special_query'] ) )
// do special stuff
return $query;
}
add_action( 'pre_get_posts', 'wpse52480_pre_get_posts' );–
// set the query var (along with whatever others) to trigger the filter
$args = array(
'my_special_query' => true
);
$my_secondary_loop = new WP_Query( $args );-to sice fungovalo v tom smyslu, že se konečně nezobrazovaly první tři příspěvky jen v tom hlavním výpisu, u ostatních to bylo v pořádku, nicméně mi to rozbilo stránkování (na druhé stránce jsem měl duplicitně obsah stránky první, tj. opět příspěvky 4-8), takže to bylo nepoužitlené…
26. října 2013 (18:50) #16677Tak nic, trochu jsem nad tím bádal a přišel jsem na to, že chyba bude někde jinde, a že jsem si asi vymyslel a po WP chci nějaký nesmysl… Takže problém s opakujícíma se postama jsme vyřešil tak, že jsem do slideru zahrnul i starší posty a promíchal jsem jejich pořadí…
Toto vlákno je už tedy neaktuální…
-
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.