Plugin per taggare (aggiungere una classe a?) immagini allegate a un articolo?

17 feb 2011, 04:29:53
Visualizzazioni: 1.12K
Voti: 2

Sto cercando un plugin che permetta a un utente di taggare immagini allegate a un articolo. Il mio obiettivo è far sì che venga aggiunta una classe al tag <img> in modo da poter (si spera) creare diversi rotatori di immagini jQuery all'interno di quell'articolo, ciascuno utilizzando immagini con un tag/classe diversa.

Modifica con maggiori dettagli: Ho trovato un plugin chiamato Media Tags, ma non credo che realizzi direttamente ciò che desidero. Aggiunge una tassonomia agli elementi multimediali, e questi possono poi essere visualizzati sul sito (attraverso un tag template o uno shortcode) in base al loro 'tag media'. Il mio obiettivo finale è rendere possibile per la persona che aggiorna il sito (un cliente senza alcuna conoscenza precedente di WordPress) inserire facilmente diverse immagini in un articolo, 'taggare' queste immagini, e far sì che vengano visualizzate in rotatori jQuery separati all'interno dell'articolo, in base al tag assegnato. La mia idea iniziale è che il modo migliore per farlo sia rendere semplice e intuitivo l'aggiunta di una classe ai tag <img>, ma sono aperto ad altri suggerimenti.

Sono consapevole che le classi possano essere aggiunte a un'immagine già allegata accedendo alla schermata Modifica immagine > Impostazioni avanzate, ma non sono sicuro di quanto sia intuitivo, e ovviamente preferirei che la classe/tag venga scelta da una lista, per minimizzare gli errori.

2
Commenti

Con "utente", intendi un utente in WordPress che può modificare i post, ecc., o un visitatore del tuo sito? In generale, stiamo parlando di tagging dall'editor dei post o dalla pagina frontend?

Jan Fabry Jan Fabry
17 feb 2011 14:06:41

Scusa per la formulazione ambigua. Intendo qualcuno che esegue il tagging dall'editor dei post.

Travis Northcutt Travis Northcutt
17 feb 2011 14:47:36
Tutte le risposte alla domanda 2
5

register_taxonomy_for_object_type('post_tag', 'attachment'); dovrebbe funzionare. Penso che potresti farlo anche dal file functions.php del tuo tema.

Modifica: ok, prova questo (salva come attachmenttags/attachmenttags.php nella cartella dei plugin e assicurati che WordPress possa leggerlo, poi attivalo nel gestore dei plugin):

/*
Plugin Name: AttachmentTags
Description: Abilita i tag per gli allegati
Author: Wyrfel <andre@wyrfel.com>
Version: 0.1
*/

if (!class_exists('AttachmentTags') {
    class AttachmentTags {
        function AttachmentTags() {
            add_action('admin_init', array(&$this, 'admin_init'));
            add_filter('wp_get_attachment_image_attributes', array(&$this, 'add_tag_classes'), 10, 2);
        }

        function admin_init() {
            register_taxonomy_for_object_type('post_tag', 'attachment');
        }

        function add_tag_classes($attr, $attachment) {
            $tags = wp_get_object_terms($attachment->ID, 'post_tag', array('fields' => 'names'));
            if (!empty($tags)) foreach ($tags as $tag) {
                $attr['class'] .= ' '.$tag; //wp sanitizza successivamente, quindi non è necessario farlo qui
            }
            return $attr;
        }

    }
    $AttachmentTags = new AttachmentTags();
}

BTW: Questo crea anche il campo per i tag nel popup di aggiunta/modifica immagine quando modifichi un post/pagina.
Modificato ancora, ora dovrebbe anche inserire le classi ogni volta che usi get_the_post_thumbnail() nel tuo tema.

17 feb 2011 09:15:05
Commenti

Cosa dovrebbe risultare da questo? Ho provato quel codice, ma non vedo alcun cambiamento.

Travis Northcutt Travis Northcutt
17 feb 2011 13:13:49

C'è del codice nella funzione che crea l'interfaccia dell'editor dei media (che appare se clicchi su un allegato nella tua libreria) che verifica le tassonomie disponibili per gli allegati e dovrebbe creare un campo per ogni tassonomia disponibile. Se quanto sopra non funziona, ho o un errore lì dentro (forse tag invece di post_tag?) o WP lo ignora ancora. Lo stai chiamando dall'hook 'init' o 'admin_init'?

wyrfel wyrfel
18 feb 2011 03:46:51

L'ho appena testato, funziona sicuramente come detto sopra se lo esegui dal callback di 'admin_init'. In realtà, è possibile che se fai questo dal functions.php del tuo tema, questo non venga chiamato affatto nell'area di amministrazione.

wyrfel wyrfel
18 feb 2011 03:49:11

Ho provato a salvarlo come plugin come mi hai suggerito, ma ancora nessun risultato. WP riesce a vederlo, ma restituisce un errore quando provo ad attivarlo:

Parse error: syntax error, unexpected '{' on line 9

Non è l'unico errore di sintassi però, e non sono sicuro di come sistemarli tutti.

Travis Northcutt Travis Northcutt
7 mar 2011 15:45:18

@tnorthcut ahh scusa, è un errore di battitura stupido che faccio troppo spesso...avevo () dietro la definizione della classe. L'ho rimosso.

wyrfel wyrfel
8 mar 2011 10:23:21
0

Ti consiglio di utilizzare il plugin Attachments. Questo aggiunge un piccolo meta box nella parte inferiore di un articolo, dove l'utente può facilmente aggiungere immagini dalla libreria o caricarne di nuove. Se usi add_image_size puoi aggiungere il supporto per qualsiasi dimensione richiesta dal tuo tema. Possono anche riordinare le immagini tramite drag and drop e aggiungere metadati come didascalia e testo alternativo.

Puoi integrarlo nel tuo tema in modo molto semplice, le immagini avranno sempre la dimensione corretta e puoi poi aggiungere qualcosa come jQuery cycle per inserire immagini rotanti in ogni articolo.

8 mar 2011 10:52:09