Imposta l'immagine in evidenza per i template di archivio

21 set 2012, 02:55:23
Visualizzazioni: 13.6K
Voti: 7

Vorrei impostare un'immagine in evidenza per i template di archivio del mio tema. Per quanto ne so, non c'è un modo per farlo nell'interfaccia di amministrazione di WordPress (come invece avviene per Pagine e Articoli).

Stavo pensando di scrivere una funzione che filtra tra le immagini in evidenza attualmente caricate e abbina il template al nome del file. Potrebbe essere un po' complesso.

So anche che esistono le opzioni del tema. Ma mi sembra un po' troppo da gestire.

Come consiglieresti di procedere per facilitare l'amministrazione delle Immagini in evidenza (Tema -> Intestazione) e la manutenzione...

3
Commenti

Per chiarire: stai cercando di associare un'immagine a un template/pagina di risultati archive.php?

Ben HartLenn Ben HartLenn
21 set 2012 03:21:21

Sì, in sostanza sto cercando di associare immagini in evidenza ai template di archivio.

Jason McCreary Jason McCreary
21 set 2012 05:47:24

Non capisco bene. Vuoi impostare un'immagine di intestazione per il template di archivio? Se è così, sarebbe semplice come if( is_archive() ) {..la tua immagine..}. Se vuoi modificarla dal backend, allora effettivamente devi creare una pagina di opzioni per questo. (Forse esistono plugin per farlo, non so)

xsonic xsonic
21 set 2012 15:36:24
Tutte le risposte alla domanda 6
0

Ci sono molti archivi in WordPress. Archivi di tag, archivi di date, archivi di categorie, archivi di termini, archivi di autori. A quale archivio ti riferisci?

Potresti iniziare provando il plugin Taxonomy Images http://wordpress.org/extend/plugins/taxonomy-images/

18 ott 2012 03:40:50
0

Questo è vecchio, ma è il primo risultato che appare su Google per questo argomento.

Il modo in cui ho risolto è stato creare una nuova pagina. Non darle lo stesso nome della tua pagina di archivio (WordPress non gradisce pagine con lo stesso nome della pagina di archivio, causa problemi), puoi chiamarla come vuoi. Imposta l'immagine in evidenza e poi richiamala nel tuo template di archivio usando questo codice:

$post_id = 8; 
$queried_post = get_post($post_id);
$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), '') ;
$thumb_id = get_post_thumbnail_id($post_id);
?>
<img src="<?php echo $src[0]; ?>" class="img-responsive" />

Per spiegarlo:

$post_id = 8;

è il numero ID della tua nuova pagina.

$src = wp_get_attachment_image_src(get_post_thumbnail_id($queried_post->ID), '') ; 

trova l'immagine in evidenza associata a questa pagina

<img src="<?php echo $src[0]; ?>" class="img-responsive" /> 

mostra l'immagine in evidenza dalla tua nuova pagina.

4 ott 2016 11:47:06
0

Puoi farlo via CSS definendo una regione per l'immagine di intestazione nel tuo archive.php e impostando un'immagine di sfondo nel tuo style.css

Oppure puoi utilizzare il plugin Dynamic Headers http://wordpress.org/extend/plugins/dynamic-headers/ (funziona benissimo anche se non viene aggiornato dal 2010)

15 ott 2012 22:09:15
0

Arrivo un po' in ritardo su questo, ma credo che questo plugin risponda alla domanda originale: http://wordpress.org/plugins/categories-images/

Consente a un amministratore di selezionare un'immagine in evidenza per una particolare categoria/tag/tassonomia nel pannello di modifica della tassonomia. Può poi essere utilizzata nel file archive.php del tema (ad esempio) richiamando z_taxonomy_image_url();.

Se preferisci sviluppare una soluzione personalizzata, potresti dare un'occhiata al codice di quel plugin come punto di partenza.

7 mar 2014 17:08:46
0

Penso che dovresti optare per il metodo manuale, qualcosa del genere:

  1. accedi alla pagina "MODIFICA" di ogni categoria e nella descrizione inserisci in questo modo:
    [image url="https://upload.wikimedia.org/wikipedia/commons/0/0c/Bunker_in_Albanian_Alps.jpg"]
  1. recupera l'immagine per la categoria:
    if (is_archive())   {
        if (!empty($GLOBALS['wp_query']->queried_object->description) )  { 
            $cat_description =$GLOBALS['wp_query']->queried_object->description); 
                //nota: da altre pagine, puoi ottenere la descrizione della categoria con:  get_term('1533' , 'category')->description;  
            preg_match('/url\=\"(.*?)\"/si', $cat_description, $new);
            if(!empty($new[1])) {
                $found_image= $new[1];
            }
        }
    }

ora puoi utilizzare quell'immagine ovunque, nell'head o nella pagina...

4 ott 2016 12:12:15
0

YOAST! Premium lo fa già in modo nativo.

Tuttavia, io uso ACF, dove posso creare una pagina di opzioni in cui ho aggiunto un campo repeater per impostare un'immagine in evidenza per ogni tipo di post.

Poi, con la funzione qui sotto aggiunta al mio functions.php, richiamo i meta tag necessari negli archivi dei tipi di post per cui ho definito un'immagine in evidenza.

function custom_featured_archive_image() {
    $o = get_field("featured_images", "option");
    if (is_array($o)) {
        foreach($o as $option) {
            if (is_post_type_archive($option["post_type"])) {
                $image_id = $option["image"];
                $image_url = wp_get_attachment_image_src($image_id, "original");
                $mime_type = get_post_mime_type($image_id);
                
                echo '
                    <meta property="og:image" content="'.$image_url[0].'">
                    <meta property="og:image:width" content="'.$image_url[1].'">
                    <meta property="og:image:height" content="'.$image_url[2].'">
                    <meta property="og:image:type" content="'.$mime_type.'">
                    <meta name="twitter:image" content="'.$image_url[0].'">
                ';

            }
        }
    }
}
add_action('wp_head', 'custom_featured_archive_image', 0);
1 set 2022 21:09:55