Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Różne archiwa w zależności od id kategorii

Mam taki problem. W archiwum chce wyświetlać różne układy w zależności od kategorii. Np dla kategorii id=1 2 kolumnowe archiwum, dla id=3 jeden wpis.

Próbowałem sb poradzić budując coś takiego:

if have_posts

if is_category('1') {
include (TEMPLATEPATH . '/categoria1.php') }
if is_category('3') {
include (TEMPLATEPATH . '/categoria3.php') }
endif

Jednak nie działa to. Czy macie jakieś pomysły ?Łukasz Piwowar edytował(a) ten post dnia 29.12.10 o godzinie 18:14

Temat: Różne archiwa w zależności od id kategorii

Lepiej zrób oddzielne szablony dla kategorii, zapisz plik category.php jako category-nazwakategorii.php i możesz dowoli modyfikować szablon.
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Różne archiwa w zależności od id kategorii

Tomasz Mazur:
Lepiej zrób oddzielne szablony dla kategorii, zapisz plik category.php jako category-nazwakategorii.php i możesz dowoli modyfikować szablon.


Jeżeli mam 5 kategorii i każda ma inny szablon, to wystarczy zrobić 5 szablonów? Jak to potem podpiąć pod wordpress

Temat: Różne archiwa w zależności od id kategorii

Łukasz Piwowar:

Jeżeli mam 5 kategorii i każda ma inny szablon, to wystarczy zrobić 5 szablonów? Jak to potem podpiąć pod wordpress

Tak robisz 5 szablonów dla 5 kategorii i nazywasz je category-nazwakategorii.php

Potem wrzucasz to do katalogu skórki i działa.

Proponuję zapoznać się z http://codex.wordpress.org/Template_Hierarchy
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Różne archiwa w zależności od id kategorii

Dzięki :)

konto usunięte

Temat: Różne archiwa w zależności od id kategorii

Właśnie siedzę nad identycznym zagadnieniem i u mnie również is_category() oraz in_category() nie działa. Dziwne.

Co do Waszych sugestii to czy możecie jeszcze podpowiedzieć, co daje stworzenie category-nazwakategorii.php? Czy to jest zastąpienie archive.php (z listą wpisów) czy moze single.php (z konkretnym wpisem)?

Wordpress sam to rozpoznaje i podpina odpowiedni szablon? Nie nie trzeba robić?

Temat: Różne archiwa w zależności od id kategorii

Tomasz Kapica:

Co do Waszych sugestii to czy możecie jeszcze podpowiedzieć, co daje stworzenie category-nazwakategorii.php? Czy to jest zastąpienie archive.php (z listą wpisów) czy moze single.php (z konkretnym wpisem)?
>
Wordpress sam to rozpoznaje i podpina odpowiedni szablon? Nie nie trzeba robić?

Wordpress sam to rozpoznaje.
category-nazwakategorii.php zastępuje ogólny szablon category.php (lista wpisów dla kategorii) dla kategorii o nazwie: nazwakategorii.

Naprawdę polecam zapoznać się z artykułem http://codex.wordpress.org/Template_Hierarchy

A w szczególności z ilustracją tam zamieszczoną pokazująca w jakiej kolejności wordpress poszukuje plików szablonu do wyświetlenia danych.

A co do kodu na samej górze to zamiast
TEMPLATEPATH powinno się znaleźć get_bloginfo("template_url")Michał Żuk edytował(a) ten post dnia 30.12.10 o godzinie 10:22

konto usunięte

Temat: Różne archiwa w zależności od id kategorii

OK generalnie wszystko jest dla mnie zrozumiałe... prawie.
Zanim zacznę kombinować wolę jeszcze zapytać.

Załóżmy że chciałbym, aby:
1) strona wyświetlająca listę postów w danej kategorii miała kompletnie inny sidebar
2) strona wyświetlająca KONKRETNEGO POSTA też miała inny sidebar

Patrząc na obrazek, w pkt1 muszę utworzyć category-nazwakategorii.php i tutaj nie ma problemu. Ale co w przypadku pkt2? Co powinienem zrobić, jeśli chodzi już o konkretny wpis należący do danej kategorii?

Kolejna sprawa - chciałbym wczytywać inne cssy dla różnych kategorii i muszę to zrobić w header.php. Jak już wspominałem is_category() nie chce działać. Co z tym fantem zrobić?

Temat: Różne archiwa w zależności od id kategorii

PKT 2:Dla postów masz is_single
http://codex.wordpress.org/Conditional_Tags#A_Single_P...

Co do is_category spróbuj tak (analogicznie będzie dla is_single):

<?php
if (is_category('3')) {
include(get_bloginfo("template_url") . '/twojcss.css') ;}
?>
Michał Żuk edytował(a) ten post dnia 30.12.10 o godzinie 13:14

konto usunięte

Temat: Różne archiwa w zależności od id kategorii

Michał Żuk:
PKT 2:Dla postów masz is_single
http://codex.wordpress.org/Conditional_Tags#A_Single_P...

Co do is_category spróbuj tak (analogicznie będzie dla is_single):

<?php[/quote]> if (is_category('3')) {[quote]include(get_bloginfo("template_url") . '/twojcss.css') ;}
?>
Michał Żuk edytował(a) ten post dnia 30.12.10 o godzinie 13:14
Dla postów mam is_single, ale co to ma do rzeczy?
W kategoriach tworzyło się plik php o odpowiedniej nazwie, a tutaj?

Temat: Różne archiwa w zależności od id kategorii

Tomasz Kapica:

Dla postów mam is_single, ale co to ma do rzeczy?
W kategoriach tworzyło się plik php o odpowiedniej nazwie, a tutaj?

Jeżeli zależy Tobie aby dla postów w danej kategorii był inny sidebar to skorzystaj z funkcji in_category
I dołącz dla wybranych kategorii odpowiedni sidebar.


<?php
if (in_category('twojakategoria')) {
include(get_bloginfo("template_url") . '/twojsidebar.php') ;}
?>


Wcześniej zasugerowałem się, że potrzebujesz osobnego sidebara dla jednego wybranego postu.

--------------

Dla pojedynczych postów możesz tylko w plikach php rozróżnić szablony dla różnych typów postów korzystając z plików single-typ_postu.php.

--------------

css w header dla poszczególnych kategorii musisz załączyć funkcją is_category


<?php
if (is_category('3')) {
include(get_bloginfo("template_url") . '/twojcss.css') ;}
?>
Michał Żuk edytował(a) ten post dnia 30.12.10 o godzinie 13:57
Łukasz Piwowar

Łukasz Piwowar DigitalZone -
Interactive Agency

Temat: Różne archiwa w zależności od id kategorii

Tomasz Kapica:
Michał Żuk:
PKT 2:Dla postów masz is_single
http://codex.wordpress.org/Conditional_Tags#A_Single_P...

Co do is_category spróbuj tak (analogicznie będzie dla is_single):

<?php[/quote][/quote]> > if (is_category('3')) {[quote][quote]include(get_bloginfo("template_url") . '/twojcss.css') ;}
?>
Dla postów mam is_single, ale co to ma do rzeczy?
W kategoriach tworzyło się plik php o odpowiedniej nazwie, a tutaj?


if ( is_single()) {
<!--- sidebar dla wpisu pojedyńczego -->
}

elseif (is_category()) {
<!--- sidebar dla kategori -->
}

else {
<!--- sidebar normalny -->
}


Tak budujesz sidebar.php Powinno działać. Żeby było czytelniej nie musisz budować 3 paneli w pliku sidebar.php tylko zbudować sidebar-single, sidebar-category, sidebar-normal i używając include umieścić w odpowiednich miejscach sidebar.php

Jeżeli chodzi natomiast o różne css różnych kategorii, to zamiast

if (is_category()) {

}

Możesz wykorzystać instrukcje swich
http://pl.wikibooks.org/wiki/PHP/Instrukcja_switch

Pobierasz wtedy id kategorii i przyporządkowujesz odpowiednie pliki css w zależności od id.

W skrócie:

if ( is_category() ) :

$nr_cat = get_the_category();

swich ($nr_cat) {
case '1' :
include ();
case '2' :http://www.goldenline.pl/reklama
include ();
defaul:
include ();
}

endif;


Michał, akurat twój post pojawił się w trakcie pisania mojego :)Łukasz Piwowar edytował(a) ten post dnia 30.12.10 o godzinie 14:02



Wyślij zaproszenie do