Eliminar atributos de imagen y dimensión de título

9

Esta pregunta es una consecuencia de esta discusión sobre la eliminación de atributos de dimensión de las imágenes. El código de solución proporcionado en ese hilo funciona muy bien, excepto que tiene el desafortunado efecto secundario de que los [caption]códigos cortos se eliminan de la imagen.

Después de varias horas de profundizar en el código central, encontré la causa de esto. El plugin wpeditimage TinyMCE que se encarga de agregar las [caption]comprobaciones de shortcode para los atributos de ancho en el shortcode y la imgetiqueta. Si no los encuentra, simplemente elimine el subtítulo. Dado que esto se hace 'sobre la marcha' con javascript en el editor TinyMCE, no puedo pensar en ningún tipo de filtro de WordPress que aborde este problema. Sin embargo, estaría muy feliz de que me demuestren que estoy equivocado. :)

Como nota final, mi solución temporal ha sido utilizar el siguiente jQuery para eliminar todas las etiquetas ofensivas del lado del cliente. Esto, junto con un filtro activado img_caption_shortcodepara evitar que se use un estilo de ancho allí, parece hacer el trabajo. No es bonito, pero es una tirita por ahora. Alguien tiene una mejor idea?

// Strip width and height attributes from img, video, and object in the main article so we can have fluid images
var $fluid_items = $('.main-article-wrapper').find('img,video,object');
$fluid_items.removeAttr('width');
$fluid_items.removeAttr('height');
Dominic P
fuente
Hmmm ... ¿es un requisito poder usar el editor visual? Si solo usa el editor HTML, un filtro en img_caption_shortcode funciona bien ...
goldenapples
@goldenapples, sí, no quiero perder el editor visual ya que voy a hacer que personas no técnicas editen el sitio. Gracias por la sugerencia sin embargo. ¿Alguna otra idea?
Dominic P
Dominic, ¿puedes proporcionar el código para "un filtro en img_caption_shortcode para evitar que se use un estilo de ancho allí"? Esto es exactamente lo que necesito, pero no sé cómo escribir ese filtro.
@Wendy, hmm, no puedo pegar todo en un comentario. Si desea hacer otra pregunta y darme un enlace, la publicaré como respuesta.
Dominic P
En caso de que no quisiera pasar por todo eso, básicamente modifiqué el ejemplo del Codex .
Dominic P

Respuestas:

18

Puede que no sea la respuesta exacta que buscas, pero creo que acabo de encontrar una solución bastante buena.

Iv'e tomó el siguiente código del CSS de veintiocho temas (que en mi opinión es muy receptivo):

/* Images */
.entry-content img,
.comment-content img,
.widget img {
    max-width: 97.5%; /* Fluid images for posts, comments, and widgets */
}
img[class*="align"],
img[class*="wp-image-"] {
    height: auto; /* Make sure images with WordPress-added height and width >attributes are scaled correctly */
}
img.size-full {
    max-width: 97.5%;
    width: auto; /* Prevent stretching of full-size images with height and >>width attributes in IE8 */
}

Esto fue suficiente para hacer que todas las imágenes respondan (al menos las incrustadas en el contenido ...) Ahora tengo imágenes receptivas, pero cuando se usa el subtítulo todavía tengo el mismo problema, eso ocurre porque tinyMCE agrega un atributo de estilo al contenedor de subtítulos con el ancho de la imagen. Para arreglar eso, todo lo que tenía que hacer es agregar esto a mi CSS:

            .wp-caption { max-width: 100%; }

¡Hecho! funciona bien para mí, aunque podría no funcionar para las imágenes destacadas.

Espero que esto ayude a alguien :-)

Talbatz
fuente
Todavía no he tenido tiempo de probar esto por completo, pero ya ha demostrado ser bastante útil en otras áreas. Gracias por la ayuda.
Dominic P
es un placer :-)
Talbatz
Probado en IE9, no parece funcionar como se esperaba.
Kuldeep Daftary
Esto entra en conflicto con los antiguos navegadores IE
Tosh
muy buena solución! thx
emjay