J'ai cherché haut et bas une solution simple à ce problème, mais en vain. Wordpress continue à envelopper mes images dans des balises p et, en raison de la nature excentrique de la présentation d'un site sur lequel je travaille, c'est très énervant.
J'ai créé une solution jQuery pour décompresser des images, mais ce n'est pas si génial. Cela prend du retard en raison du chargement d'autres éléments sur la page, ce qui fait que les modifications sont lentes à faire. Existe-t-il un moyen d’empêcher Wordpress d’emballer uniquement des images avec des balises p? Un crochet ou un filtre peut peut-être être exécuté.
Cela se produit lors du téléchargement d'une image, puis de son insertion dans l'éditeur WYSIWYG. Entrer manuellement dans la vue de code et supprimer les balises p n'est pas une option, car le client n'est pas techniquement inepte.
Je comprends que les images sont en ligne, mais la façon dont j'ai les images codées par le site est à l’intérieur de divs et définie pour bloquer, ce qui en fait un code valide.
Réponses:
voici ce que nous avons fait hier sur un site client avec lequel nous avions ce problème précis ... J'ai créé un filtre rapide en tant que plugin et je l'ai activé.
Si vous déposez cela dans un fichier php de votre dossier / wp-content / plugins, puis l'activez, il devrait supprimer les balises p de tout paragraphe ne contenant qu'une image.
Je ne suis pas sûr de la force de l'expression rationnelle si elle échouera avec les sorties d'autres éditeurs - par exemple, si la balise img est fermée avec simplement> elle échouera. Si quelqu'un a quelque chose de plus fort, ce serait vraiment utile.
À votre santé,
James
--- Filtre amélioré ---
Pour travailler avec des images encapsulées dans des liens, il conserve les liens dans la sortie et supprime les balises p.
la source
img
balisage HTML5 par défaut , c'est-à-dire<img ...>
sans la barre oblique de fermeture. Il est préférable de rendre cela optionnel dans votre regex. Ou mieux encore, vous pouvez le laisser comme vous le.*
ferez.<img ...>
sans/>
?Fondamentalement, vous devez faire en sorte que WordPress traite img comme un élément de niveau bloc aux fins de la mise en forme. Ces éléments sont codés en dur
wpautop()
et la liste n'est malheureusement pas filtrée.Ce que je ferais c'est:
wpautop()
sous un nom différent.img
à l'expression rationnelle dans la$allblocks
variable.wpautop
duthe_content
filtre.the_content
.la source
peut-être que ça va aider
Mais ensuite, vous allez ajouter les paragraphes pour tout le reste manuellement.
la source
Soska ont donné un moyen / facile.
Mais ce que je fais est d’extraire une image du contenu et de l’afficher séparément.
la source
Cet article est un peu vieux, mais il existe une solution beaucoup plus simple, excluant CSS de votre côté.
Envelopper la balise img dans une div a peu d’effet négatif.
la source
J'ai développé un plugin qui a résolu ce problème: http://wordpress.org/extend/plugins/unwrap-images/
C'est mieux que de définir la marge ou de plonger directement dans le code Wordpress pour ceux qui ne veulent pas jouer avec du code car il utilise la fonction de décompression native de jQuery pour décompresser toutes les images de leurs balises p.
J'espère que cela aide quelqu'un! Cordialement, Brian
la source
La réponse acceptée m'a aidé uniquement avec les images, mais le code révisé ne gère pas correctement les images liées sur mon site. Cet article de blog a un code qui fonctionne parfaitement.
Voici le code:
À votre santé!
la source
Je ne suis pas un expert mais je viens de passer l'après-midi à essayer de résoudre le problème im pg et cela a fonctionné pour moi.
Je travaille sur un thème basé sur wordpress et je viens de l'ajouter au fichier functions.js
Jquery function déballe
maintenant je peux travailler p et img séparément.
Vous pouvez aussi ajouter une div avec une classe différente autour de img en utilisant ceci:
ce dernier n’a pas résolu mon problème car je voulais créer des balises p avec display: none; donc je devais vraiment prendre ces img de là.
la source
Selon le post, une autre solution pourrait être d’utiliser le plugin WP Unformatted pour désactiver la fonction auto-p sur une base individuelle.
la source
Dans le cas où une personne est de chercher un rapide et sale façon de résoudre ce problème pour toute étiquette est ce que je l'ai fait ici:
$allblocks = '(?:table|thead|tfoot|capti...
img
,a
, etc ... par exemple si elle se termine par le(...)menu|summary)';
changement d'(...)menu|summary|a)';
ajouter l'a
étiquette et éviter autopeeing il. Notez le|
séparateur de tuyaux - c'est la syntaxe regex !C'est ça, joyeux Wordpressing!
la source