Czy mogę ustawić domyślny wyróżniony obraz dla kategorii?


10

Tworzę witrynę z motywem, który korzysta z funkcji „polecanego obrazu” WordPress. Ponieważ moi użytkownicy końcowi nie są najbardziej zaawansowani technicznie na świecie, chciałbym skonfigurować takie ustawienia, aby kategorie miały domyślny „polecany obraz” przypisany do wpisu. W przypadku wielu kategorii przypisanych do postu, wystarczy wziąć pierwszą.

Czy istnieje już wtyczka lub sposób na jej kodowanie?



2 lata później dostępna jest wtyczka WordPress. Kasa „Polecane obrazy dla kategorii” wordpress.org/plugins/featured-images-for-categories

Użyj tej wtyczki: wordpress.org/extend/plugins/categories-images Działa również w przypadku kategorii i dowolnej niestandardowej taksonomii, możesz znaleźć więcej informacji o wtyczce, jak jej używać i wiele przykładów w dokumentacji
Muhammad

Odpowiedzi:


13

W szablonie, w którym wyświetlany jest Wyróżniony obraz: <?php the_post_thumbnail( 'thumbnail' ); ?>możesz uzależnić go od tego, czy Wyróżniony obraz jest ustawiony, a następnie ustawić domyślną wartość na dowolną, jeśli nie jest ustawiony.

Jednym ze sposobów jest umieszczenie wszystkich domyślnych obrazów w katalogu i nazwanie ich dla kategorii, np. news.jpg i reviews.jpg, zamiast <?php the_post_thumbnail( 'thumbnail' ); ?>wyświetlać polecany obraz, możesz użyć tego:

<?php 
   if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())  ) { 
      the_post_thumbnail('thumbnail');
   } else { ?>
      <img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> <?php }
   endif;
} ?>

Więc w powyższym przykładzie, jeśli post jest w kategorii wiadomości, a Twój pisarz nie ustawił Wyróżnionego obrazu, domyślnie będzie to obraz zapisany w http://www.yoursite/whatever/directory/news.jpg.


Tak też to robię. +1
epaps

co się stało, jeśli post należy do kilku kategorii?
Eray

Dobre pytanie. get_the_category()zwróci tylko jedną kategorię i zapominam, jak decyduje, której kategorii użyć.
mat

1
get_the category () pobiera wszystkie kategorie jako tablicę, ale potrzebujesz małej sztuczki. studiograsshopper.ch/code-snippets/…
Eray

2
<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="<?php bloginfo('template_directory'); ?>/your image directory name in theme folder/<?php $category = get_the_category(); echo $category[0]->cat_name; ?>.jpg" /> 

<?php endif;?>

2

Wystąpiły problemy z nazwami kategorii ze spacjami i nieco zmodyfikowałem powyższy kod, aby dopasować go do moich potrzeb

<?php if (  (function_exists('has_post_thumbnail')) && (has_post_thumbnail())) : ?>

<?php the_post_thumbnail('thumbnail'); ?>

<?php else :?>

<img src="whatever/directory/<?php $category = get_the_category(); echo $category[0]->cat_ID; ?>.jpg" /> 

<?php endif;?>

w zasadzie po prostu zmień

echo $category[0]->cat_name;

do

echo $category[0]->cat_ID;

co sprawi, że twój obraz 16.jpg lub 3.jpg cokolwiek będzie odpowiadać Twojemu numerowi kategorii.


Myślę, że wiele osób woli używać identyfikatora kota, ponieważ jest to bezpieczniejsze i pozwala zmienić etykietę kategorii lub ślimaka.
Damien

2

Czystszy sposób na wykonanie powyższych czynności;)

if ( ( function_exists( 'has_post_thumbnail' ) ) && ( has_post_thumbnail() ) ) : 
    the_post_thumbnail( 'thumbnail' );
else :
    ?><img src="whatever/directory/<?php 
        $category = get_the_category(); echo $category[0]->cat_name; 
        ?>.jpg" /><?php
endif;

1

Z powodzeniem korzystałem z obrazów taksonomii Michaela Fieldsa - dodaje funkcje zarządzania do strony edycji kategorii / taksonomii, dzięki czemu wyróżnione obrazy działają w taksonomiach tak samo, jak w przypadku postów / stron. Posiada wszystkie funkcje potrzebne do tworzenia motywów.

ujęcie niestandardowego ekranu administratora systematyki

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.