Cum pot adăuga clase la imaginile atașate unui articol în WordPress?
Caut un plugin care să permită unui utilizator să eticheteze imaginile atașate unui articol. Scopul meu este să adaug o clasă tag-ului <img> pentru a putea crea diferite rotatoare de imagini jQuery în cadrul acelui articol, fiecare folosind imagini cu o etichetă/clasă diferită.
Editare cu mai multe detalii: Am găsit un plugin numit Media Tags, dar nu cred că realizează direct ceea ce doresc. Acesta adaugă o taxonomie elementelor media, iar acestea pot fi apoi afișate pe site (prin tag-uri de șablon sau shortcode) în funcție de 'eticheta media'. Scopul meu final este să fac posibil ca persoana care actualizează site-ul (un client fără cunoștințe anterioare de WordPress) să poată introduce cu ușurință mai multe imagini într-un articol, să le 'eticheteze' și să afișeze acele imagini în rotatoare jQuery separate în cadrul articolului, în funcție de eticheta atribuită. Ideea mea inițială este că cel mai bun mod de a face acest lucru este să facilitez adăugarea intuitivă a unei clase la tag-urile <img>, dar sunt deschis și la alte sugestii.
Știu că clasele pot fi adăugate unei imagini deja atașate accesând ecranul Editare Imagine > Setări Avansate
, dar nu sunt sigur cât de intuitiv va fi acest lucru și aș prefera, desigur, ca eticheta/clasa să fie aleasă dintr-o listă, pentru a minimiza erorile.

register_taxonomy_for_object_type('post_tag', 'attachment');
ar trebui să funcționeze. Cred că poți face asta chiar din fișierul functions.php al temei tale.
Edit: ok, încearcă asta (salvează ca attachmenttags/attachmenttags.php în folderul de plugin-uri și asigură-te că WordPress îl poate citi, apoi activează-l în managerul de plugin-uri):
/*
Plugin Name: AttachmentTags
Description: activează etichetarea atașamentelor
Author: Wyrfel <andre@wyrfel.com>
Version: 0.1
*/
if (!class_exists('AttachmentTags') {
class AttachmentTags {
function AttachmentTags() {
add_action('admin_init', (&$this, 'admin_init'));
add_filter('wp_get_attachment_image_attributes', (&$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', 'names');
if (!empty($tags)) foreach ($tags as $tag) {
$attr['class'] .= ' '.$tag; //wp sanitizează ulterior, deci nu avem nevoie
}
return $attr;
}
}
$AttachmentTags = new AttachmentTags();
}
Apropo: Acest lucru creează și câmpul pentru etichete în popup-ul de adăugare/editare imagine când editezi postul/pagina.
Edit din nou, ar trebui acum să injecteze și clasele ori de câte ori folosești get_the_post_thumbnail() în tema ta.

La ce ar trebui să ducă acest lucru? Am încercat acel cod, dar nu văd nicio modificare.

Există cod în funcție care creează interfața editorului de media (care apare dacă dai click pe un atașament în biblioteca ta) care verifică taxonomiile disponibile pentru atașamente și ar trebui să creeze un câmp pentru fiecare taxonomie disponibilă. Dacă cele de mai sus nu funcționează, fie am o eroare acolo (poate 'tag' în loc de 'post_tag'?), fie WordPress încă o ignoră. O apelezi din cadrul hook-ului 'init' sau 'admin_init'?

Tocmai am testat, cu siguranță funcționează conform celor menționate mai sus dacă rulezi din cadrul callback-ului tău 'admin_init'. De fapt, este posibil ca dacă faci asta din functions.php al temei tale, acesta să nu fie apelat deloc în admin.

Am încercat să salvez asta ca un plugin așa cum ai sugerat, dar tot nu merge. WP îl vede, dar aruncă o eroare când încerc să-l activez:
Parse error: syntax error, unexpected '{' on line 9
Dar asta nu e singura eroare de sintaxă și nu sunt sigur cum să le repar pe toate.

Vă recomand să utilizați plugin-ul Attachments. Acesta adaugă o mică casetă meta în partea de jos a unui articol, unde utilizatorul poate adăuga cu ușurință imagini din bibliotecă sau încărca imagini noi. Dacă utilizați add_image_size, puteți adăuga suport pentru orice dimensiuni necesare temei. De asemenea, pot reordona imaginile prin glisare și plasare și pot adăuga metadate precum legendă și text alternativ.
Puteți integra acest lucru în tema dumneavoastră foarte ușor, imaginile vor avea întotdeauna dimensiunea corectă și apoi puteți adăuga ceva precum jQuery cycle pentru a adăuga imagini rotative pe fiecare articol.
