Posso impostare un'immagine in primo piano per una categoria?


10

Sto creando un sito con un tema che sfrutta la funzionalità "immagine in primo piano" di WordPress. Dato che i miei utenti finali non sono i più tecnologici al mondo, mi piacerebbe impostare le cose in modo che alle categorie venga assegnata una "immagine in primo piano" predefinita al post. Nel caso di più categorie assegnate a un post, semplicemente prenderebbe il primo.

Esiste un plugin esistente o un modo per codificare questo?



2 anni dopo, c'è un plugin per WordPress che lo fa. Acquista "Immagini in primo piano per categorie" wordpress.org/plugins/featured-images-for-categories

Usa questo plugin: wordpress.org/extend/plugins/categories-images Funziona anche per categorie e qualsiasi tassonomia personalizzata, puoi trovare ulteriori informazioni sul plugin, come usarlo e molti esempi nelle documentazioni
Muhammad

Risposte:


13

Nel modello in cui è visualizzata l'immagine in primo piano: <?php the_post_thumbnail( 'thumbnail' ); ?>puoi subordinarla al fatto che l'immagine in primo piano sia impostata, quindi impostarla come preferisci se non è impostata.

Un modo per farlo è quello di mettere tutte le immagini predefinite in una directory e nominarle per le categorie, ad es. news.jpg e reviews.jpg quindi invece di utilizzare <?php the_post_thumbnail( 'thumbnail' ); ?>per visualizzare la tua immagine in primo piano, utilizzeresti questo:

<?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;
} ?>

Quindi, in questo esempio sopra, se il post è nella categoria notizie e il tuo autore non ha impostato l'immagine in primo piano, l'impostazione predefinita sarà l'immagine memorizzata in http://www.yoursite/whatever/directory/news.jpg.


È così che lo faccio anche io. +1
epaps

cosa succede se un post appartiene ad alcune categorie?
Eray,

Buona domanda. get_the_category()restituirà solo una categoria e dimentico come decide quale categoria utilizzare.
opaco

1
get_the category () sta ottenendo tutte le categorie come un array, ma è necessario un trucco di liitle. 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

Mi sono imbattuto in alcuni problemi con i nomi delle categorie con spazi ho modificato un po 'il codice sopra per soddisfare le mie esigenze

<?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;?>

in pratica basta cambiare

echo $category[0]->cat_name;

per

echo $category[0]->cat_ID;

che renderà la tua immagine 16.jpg o 3.jpg qualunque cosa corrisponda al tuo numero di categoria.


Penso che molte persone preferiscano usare l'id gatto in quanto è più sicuro e consente di cambiare l'etichetta della categoria o la lumaca.
Damien,

2

Un modo più pulito di fare quanto sopra;)

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

Ho usato con successo le immagini di tassonomia di Michael Fields: aggiunge funzioni di gestione alla pagina di modifica di categoria / tassonomia, in modo che le immagini in primo piano funzionino per le tassonomie proprio come fanno con i post / le pagine. Ha tutte le funzioni necessarie per il tuo tema.

snap della schermata di amministrazione della tassonomia personalizzata

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.