Plugin Categories Images powinien rozwiązać Twój problem.
– w dokumentacji jest przykład dla postów.
Należy jednak pamiętać o tym, że post może być przypisany do wielu kategorii 😉
Wybaczcie ale nie rozumiem tych przykładów. Jestem zielony z php. Zainstalowałem plugin. Dodałem grafikę dla danej kategorii w spisie kategorii i koniec, dalej nie wiem co robić. Może ktoś konkretnie powiedzieć mi gdzie i co mam wkleić?
Ten kawałek
<ul>
<?php foreach (get_categories() as $cat) : ?>
<li>
<img src="<?php echo z_taxonomy_image_url($cat->term_id); ?>" />
<a href="<?php echo get_category_link($cat->term_id); ?>"><?php echo $cat->cat_name; ?></a>
</li>
<?php endforeach; ?>
</ul>
Wstawiasz w loopie odpowiedzialnym za wyświetlanie wpisu – najczęściej w pliku single.php …ale to zależy już od konkretnego motywu.
Wstawiłem ten kod jednak teraz każdy post wyświetla mi listę linków do wszystkich kategorii plus grafikę kategorii którą ustaliłem.
to usuń z powyższego cały <a href… i będzie tylko obrazek/obrazki, już bez linków
Hmm. Jest grafika, już bez linków ale wyświetla się w każdym poście a nie tylko w poście danej kategorii.
Wyjaśnij może, co masz na myśli pisząc „poście danej kategorii” ?
-w poście należącym do kategorii XYZ, ale nie w poście należącym do kategorii ZZZ czy ABC ? …czy może coś innego?
Mam kategorię News, Wywiad, Sport. Chce aby grafika pokazywała się tylko we wpisach z kategorii Sport, ale pokazuje się we wszystkich postach mimo, że grafikę ustawiłem tylko dla kategorii Sport.
no to dać musisz coś w ten deseń
<?php
foreach (get_the_category() as $cat) {
if($cat->slug == 'sport') echo '<img src="'.z_taxonomy_image_url($cat->term_id).'" alt="" />';
}
?>
witam, podczepię sie tutaj gdyż powyższe rozwiązanie jest najbliższe mojemu problemowi
<?php
foreach (get_the_category() as $cat) {
if($cat->slug == 'sport’) echo '<img src=”’.z_taxonomy_image_url($cat->term_id).'” alt=”” />’;
}
?>
wyświetla wszędzie: dla kategorii i wpisów
a mi potrzeba tylko wpisów w konkretnej kategorii (bez samych kategorii)
warunek
if( is_single() )
albo
if( !is_category() )
jakby to było takie proste 😉
Niestety nie działa i to nie jest to co chce osiągnąć.
Ma spełniać poniższy warunek (tylko że mi nie działa)
if(is_category( array( 380 ) ) && is_single())
Jest proste 😉
…i zgadza się, twój kod nie działa -bo brakuje w nim logiki.
Warunek is_category działa jedynie na kategorii, is_single na stronie/wpisie. Razem nie zadziałają, bo kategoria nie jest stroną/wpisem i odwrotnie.
Bardziej obrazowo…
Masz przykładowo kategorię XYZ z wpisami ABC i DEF.
Jeżeli wejdziesz w kategorię, będzie spełniony warunek is_category i is_category($parametr) -gdzie parametr, to id kategorii, slug etc.
Więcej na http://codex.wordpress.org/Function_Reference/is_category
Natomiast nie będzie spełniony warunek is_single – bo kategoria nie jest stroną/wpisem.
A gdy wejdziesz we wpis ABC lub DEF, to będzie spełniony warunek is_single ….ale nie będzie spełniony żaden warunek is_category – powód? bo oczywiście wpis != kategoria !
Zatem odpowiedzią na twoje pytanie jest np. podany w poście wyżej warunek is_single – zostanie spełniony dla wpisu, nie dla samej kategorii. A to jakiej ma dotyczyć kategorii jest już w pętli foreach – czyli np.:
if($cat->slug == 'sport')
czy jak wolisz if($cat->cat_ID == 380)