Rimozione di attributi di dimensione immagine e didascalia


9

Questa domanda è una derivazione da questa discussione sulla rimozione degli attributi di dimensione dalle immagini. Il codice della soluzione fornito su quel thread funziona molto bene, tranne per il fatto che ha lo sfortunato effetto collaterale che qualsiasi codice di accesso [caption]rapido sia sottoposto a striping dall'immagine.

Dopo diverse ore di ricerca del codice principale, ho trovato la causa di ciò. Il plug-in TinyMCE di wpeditimage che è responsabile dell'aggiunta dei [caption]shortcode controlla gli attributi di larghezza nel shortcode e nel imgtag. Se non li trova, rimuove semplicemente la didascalia. Da allora, questo viene fatto "al volo" con JavaScript nell'editor TinyMCE, non riesco a pensare a nessun tipo di filtro WordPress che risolva questo problema. Sarei molto felice di essere smentito comunque. :)

Come nota finale, la mia soluzione temporanea è stata quella di utilizzare il seguente jQuery per eliminare tutti i tag offensivi lato client. Questo, insieme a un filtro attivo img_caption_shortcodeper impedire che uno stile di larghezza venga utilizzato lì, sembra fare il lavoro. Non è carino, ma è un cerotto per ora. Qualcuno ha un'idea migliore?

// 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');

Hmmm ... è in grado di utilizzare l'editor visivo un requisito? Se usi solo l'editor HTML, un filtro su img_caption_shortcode funziona bene ...
goldenapples

@goldenapples, sì, non voglio perdere l'editor visuale in quanto ho intenzione di far modificare il sito da persone non tecniche. Grazie per il suggerimento però. Altre idee?
Dominic P,

Dominic, puoi fornire il codice per "un filtro su img_caption_shortcode per impedire che uno stile di larghezza venga usato lì"? Questo è esattamente ciò di cui ho bisogno, ma non so come scrivere quel filtro.

@Wendy, hmm, non posso incollare il tutto in un commento. Se vuoi fare un'altra domanda e darmi un link, la posterò come risposta.
Dominic P

Nel caso in cui non volessi passare attraverso tutto ciò, ho sostanzialmente modificato l' esempio del Codex .
Dominic P

Risposte:


18

potrebbe non essere la risposta esatta che stai cercando, ma penso di aver appena trovato una soluzione abbastanza buona.

Iv'e ha preso il seguente codice dal CSS a tema undici (che è perfettamente rispondente):

/* 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 */
}

Questo era enigmatico per rendere reattive tutte le immagini (almeno quelle incorporate nel contenuto ...) Ora ho immagini reattive, ma quando si usa la didascalia ho ancora lo stesso problema, che si verifica perché tinyMCE aggiunge un attributo di stile al contenitore didascalia con la larghezza dell'immagine. Per risolvere ciò che ho dovuto fare è aggiungere questo al mio CSS:

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

Fatto! funziona bene per me, anche se potrebbe non funzionare con le immagini in primo piano.

Spero che questo aiuti qualcuno :-)


Non ho ancora avuto il tempo di testarlo completamente, ma è già stato abbastanza utile in altre aree. Grazie per l'aiuto.
Dominic P,

piacere mio :-)
Talbatz,

Testato in IE9, sembra non funzionare come previsto!
Kuldeep Daftary,

Ciò è in conflitto con i vecchi browser IE
Tosh,

soluzione davvero fantastica! thx
emjay,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.