Plugin para etiquetar (añadir una clase a) imágenes adjuntas a una publicación

17 feb 2011, 04:29:53
Vistas: 1.12K
Votos: 2

Estoy buscando un plugin que permita a un usuario etiquetar imágenes adjuntas a una publicación. Mi objetivo es que se añada una clase a la etiqueta <img> para poder (con suerte) crear diferentes rotadores de imágenes jQuery dentro de esa publicación, cada uno usando imágenes con una etiqueta/clase diferente.

Edición con más detalle: Encontré un plugin llamado Media Tags, pero no creo que esto (directamente) logre lo que quiero. Añade una taxonomía a los elementos multimedia, y luego estos elementos se pueden mostrar en el sitio (a través de una etiqueta de plantilla o un shortcode) según su 'etiqueta multimedia'. Mi objetivo final es hacer posible que la persona que actualiza el sitio (un cliente sin conocimientos previos de WordPress) pueda insertar fácilmente varias imágenes en una publicación, 'etiquetarlas', y que esas imágenes se muestren en rotadores jQuery separados dentro de la publicación, según la etiqueta asignada. Mi idea inicial es que la mejor manera de hacer esto es facilitar que se añada una clase a las etiquetas <img> de forma intuitiva, pero estoy abierto a otras sugerencias.

Sé que se pueden añadir clases a una imagen ya adjunta accediendo a la pantalla Editar Imagen > Configuración Avanzada, pero no estoy seguro de lo intuitivo que será, y por supuesto preferiría que la clase/etiqueta se elija de una lista, para minimizar errores.

2
Comentarios

¿Por "usuario", te refieres a un usuario en WordPress que puede editar publicaciones, etc., o a un visitante de tu sitio? En general, ¿estamos hablando de etiquetar desde el editor de publicaciones o desde la página frontal?

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

Disculpa la redacción ambigua. Me refiero a alguien que etiqueta desde el editor de publicaciones.

Travis Northcutt Travis Northcutt
17 feb 2011 14:47:36
Todas las respuestas a la pregunta 2
5

register_taxonomy_for_object_type('post_tag', 'attachment'); debería funcionar. Creo que incluso podrías hacer esto desde el functions.php de tu tema.

Edición: ok, prueba esto (guárdalo como attachmenttags/attachmenttags.php en tu carpeta de plugins y asegúrate de que WordPress pueda leerlo, luego actívalo en el administrador de plugins):

/*
Plugin Name: EtiquetasParaAdjuntos
Description: Permite etiquetar archivos adjuntos
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; // WordPress sanitiza después, así que no necesitamos hacerlo
            }
            return $attr;
        }

    }
    $AttachmentTags = new AttachmentTags();
}

Por cierto: Esto también crea el campo de etiquetas en la ventana emergente de agregar/editar imagen cuando editas la entrada/página actual.
Editado nuevamente, ahora también debería inyectar las clases cada vez que uses get_the_post_thumbnail() en tu tema.

17 feb 2011 09:15:05
Comentarios

¿Qué debería resultar esto? Probé ese código, pero no veo ningún cambio.

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

Hay código en la función que crea la interfaz del editor de medios (que aparece si haces clic en un adjunto en tu biblioteca) que verifica las taxonomías disponibles para adjuntos y debería crear un campo para cada taxonomía disponible. Si lo anterior no funciona, tengo un error allí (¿tal vez tag en lugar de post_tag?) o WP todavía lo ignora. ¿Lo estás llamando desde dentro del hook 'init' o 'admin_init'?

wyrfel wyrfel
18 feb 2011 03:46:51

Acabo de probarlo, definitivamente funciona como se indicó anteriormente si lo ejecutas desde dentro de tu callback 'admin_init'. En realidad, es posible que si haces esto desde dentro del functions.php de tus temas, eso no se llame en absoluto en el administrador.

wyrfel wyrfel
18 feb 2011 03:49:11

Intenté guardar esto como un plugin como sugeriste, pero todavía no funciona. WP puede verlo, pero muestra un error al intentar activarlo:

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

Ese no es el único error de sintaxis, y no estoy seguro de cómo solucionarlos todos.

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

@tnorthcut ahh lo siento, es un error tonto que cometo demasiado a menudo... tenía () detrás de la definición de la clase. Lo eliminé.

wyrfel wyrfel
8 mar 2011 10:23:21
0

Te recomiendo que utilices el plugin Attachments. Este añade una pequeña meta caja en la parte inferior de una entrada, donde el usuario puede añadir fácilmente imágenes desde la biblioteca o subir nuevas imágenes. Si utilizas add_image_size puedes añadir soporte para cualquier tamaño que necesite tu tema. También pueden reordenar las imágenes arrastrando y soltando, y añadir metadatos como el título alternativo (alt text) y el pie de foto.

Puedes integrar esto en tu tema de manera muy sencilla. Las imágenes siempre tendrán el tamaño correcto y luego puedes añadir algo como jQuery cycle para incluir imágenes rotativas en cada entrada.

8 mar 2011 10:52:09