Posted: 03.12.2009 03:06 Post subject: Wordpress ne priznaje page templateove
Uh, možda ću malo komplicirano objasnit, al nadam se da ćete skužit
Dakle
1) Imam site koji na naslovnici prikazuje nešto statično, a blog postove prikazuje na stranici "blog" - http://www.domena.com/blog/
2) Stranici "blog" je pridružen template "blog.php"
3) "blog.php" umjesto header.php vuče blog_header.php
4) u settingsima wordpressa (settings->reading) je postavljeno da se na naslovnici prikazuje page "neki-lijevi", a posts page je ostavljen prazan (kasnije objasnim zašto)
5) sve fino funkcionira, ali...
kad postavim posts_nav_link() u blog.php koji bi trebao postaviti one prev/next linkove, to ne funkcionira baš. Odnosno, prikažu se linkovi, ali kad se klikne na njih, ništa se (osim URL-a) ne promijeni.
Pretpostavljam da je to zato jer u blog.php postove dobivam sa
Code:
query_posts('showposts=10');
Okej, to ne funkcionira, pa sam otišao u settings, i tamo pod posts page stavio "blog"
E, sad funkcionira to, linkovi rade i stvarno se navigira kroz arhivu, ali mi wordpress sad ne želi prikazati tu stranicu u onom templateu kojem treba biti, nego je po defaultnom.
Da fora bude još veća, u page.php i index.php sam stavio ovaj komad koda (i da, stavio sam i <? php i ?> na kraj, al da forum slučajno ne poludi...
Code:
if (is_page('blog')) { include (TEMPLATEPATH . '/blog_header.php'); }
else get_header();
ali neće
uporno stavlja header.php a ne blog_header.php
Zapravo, moje pitanje je:
kako natjerati WP da "prizna" ovaj if uvjet ako se u settingsima postavi da "blog" bude stranica za postove? A to hoću jer jedino tada rade prev/next linkovi
Ili možda - kako natjerati posts_nav_link() da radi u ovom page templateu kad se postovi dobivaju sa query_posts('showposts=10');
blog.php mi je template za /blog, odnosno, on mi služi kao naslovnica bloga, ajmo reć.
i na njemu prikazujem zadnjih 10 postova, neovisno u koju su kategoriju spremljeni.
Page koji se zove "blog", njemu je dodijeljen template "blog.php", tak da to ima odvojen dizajn od svega...
I to je tak i funkcioniralo, ali kažem, onda ovo sa prev/next ne radi kak treba.
A ako u settingsima stavim da page "blog" bude za postove, onda se koristi page.php, ignorira se template "blog.php", bez obzira što u postoji ono if is_page('blog') { include blog_header.php } :/
sad sam probao i onak, najosnovnije:
- settings: posts page -> blog
- page blog: default template
- page.php ima if (blog) -> blog_header.php else get_header();
isto ima i index.php
ali opet ništa, opet mi gura defaultni template na blog dijelu
Ako sam dobro shvatio, ti bi naslovnicu statičku, i blog dio "posebno". Ako postove misliš
samo tamo pisati, jednostavno naslovnicu blog dijela ispiši kao /page/1/ za
što onda koristiš category.php.
Sa pluginom Different Posts per Page kontroliraj ako želiš npr. na toj prvoj stranici od "bloga"
ispisati neki drugi broj postova od onih na 2., 3., ... stranici, a sa is_paged() provjeri da
li si na prvoj ili whatsoever stranici arhive ako želiš drugačiji dizajn.
Joined: 05 Jan 2005 Posts: 11 Location: Nigdjezemska
Posted: 04.12.2009 16:07 Post subject:
Hm.. malo budalasto, zašto ne uzeti jedan page i njega staviti kao static page pod reading settingsima a ako će biti samo jedna kategorija blog (ne više), stiliziraj samo category.php, tj includaj header koji hoćeš gore. Ako je problem u permalinkovima pa zato radiš static page template onda si uzmi ovaj plugin http://wordpresssupplies.com/wordpress-plugins/no-category-base/ i instaliraj i dobit ćeš strukturu www.nešto.com/blog/. Ako ne onda probaj se poigrati sa category templates.
Ako sam dobro shvatio, ti bi naslovnicu statičku, i blog dio "posebno". Ako postove misliš
samo tamo pisati, jednostavno naslovnicu blog dijela ispiši kao /page/1/ za
što onda koristiš category.php.
Sa pluginom Different Posts per Page kontroliraj ako želiš npr. na toj prvoj stranici od "bloga"
ispisati neki drugi broj postova od onih na 2., 3., ... stranici, a sa is_paged() provjeri da
li si na prvoj ili whatsoever stranici arhive ako želiš drugačiji dizajn.
E točno to, i točno to je riješilo problem, doduše sa malim wayaroundom
page blog sam stavio da bude kao posts page, i složio 301 sa www.domena.com/blog/ na www.domena.com/blog/page/1/
i onda u index.php stavio
Code:
php if (is_paged()||(is_page('blog'))) { include (TEMPLATEPATH . '/blog_header.php'); }
else get_header();
Iako, ovo ni dalje ne prihvaća ovaj drugi uvjet, dok ne stavim ovaj redirect (odnosno, dok sam na www.domena,.com/blog/, dok nije paged) - opet ništa, baci defaultni header.
Odnosno, iako je is_page('blog') true, on to ignorira :/
Joined: 01 Aug 2006 Posts: 614 Location: Under the sky
Posted: 07.12.2009 17:38 Post subject:
is_page('blog') ne može biti istinit, a da php izvršava else blok, očito funkcija daje vrijednost različitu od true.
Problem (a on to zapravo i nije) leži u tome da funkcija provjerava što se treba prikazati i tako određuje na kojoj si stranici.
Postavio si da se na blog pageu prikazuju postovi i tamo se oni i pokazuju, ne pokazuje se page blog. Pošto se ne pokazuje
page blog već se prikazuju postovi, vrijednost funkcije je ekvivalentna laži.
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum