Eu procurei alto e baixo para uma solução simples para isso, mas sem sucesso. O Wordpress continua envolvendo minhas imagens em tags p e, devido à natureza excêntrica do layout do site em que estou trabalhando, isso é altamente irritante.
Eu criei uma solução jQuery para desembrulhar imagens, mas não é tão boa assim. Ela fica atrasada devido a outras coisas sendo carregadas na página e, portanto, as alterações são lentas. Existe uma maneira de impedir que o Wordpress envolva apenas imagens com tags p? Um gancho ou filtro talvez possa ser executado.
Isso está acontecendo ao carregar uma imagem e depois inseri-la no editor WYSIWYG. Entrar manualmente na visualização de código e remover as tags p não é uma opção, pois o cliente não é tecnicamente inepto.
Entendo que as imagens estão em linha, mas da maneira que tenho as imagens codificadas do site estão dentro de divs e configuradas para bloquear, portanto são códigos válidos.
Respostas:
aqui está o que fizemos ontem em um site cliente com o qual estávamos tendo exatamente esse problema ... Criei um filtro rápido como um plug-in e o ativei.
Se você colocar isso em um arquivo php na pasta / wp-content / plugins e ativá-lo, ele deverá remover as tags p de qualquer parágrafo que contenha apenas uma imagem.
Não tenho certeza de quão forte é o regexp em termos de se falhará com as saídas de outros editores - por exemplo, se a tag img for fechada com apenas> ela falhará. Se alguém tiver algo mais forte, isso seria realmente útil.
Felicidades,
James
--- Filtro aprimorado ---
Para trabalhar com imagens agrupadas em links, ele mantém os links na saída e remove as tags p.
fonte
img
marcação padrão do HTML5 , ou seja,<img ...>
sem a barra de fechamento. É melhor tornar isso opcional no seu regex. Ou melhor ainda, você pode deixar de fora, pois.*
ele cuidará disso.<img ...>
sem/>
?Basicamente, você precisa fazer o WordPress tratar o img como um elemento em nível de bloco com a finalidade de formatar. Esses elementos são codificados
wpautop()
e a lista infelizmente não é filtrada.O que eu faria é:
wpautop()
com nome diferente.img
ao regexp na$allblocks
variávelwpautop
dothe_content
filtro.the_content
.fonte
talvez isso ajude
Mas então você adicionará os parágrafos para todo o resto manualmente.
fonte
Soska deu uma maneira fácil.
Mas o que faço é extrair imagem do conteúdo e exibi-la separadamente.
fonte
Este post é um pouco antigo, mas existe uma solução muito mais simples, exceto o CSS do seu lado.
A quebra da tag img em uma div tem pouco efeito negativo.
fonte
Eu desenvolvi um plugin que corrigiu esse problema exato: http://wordpress.org/extend/plugins/unwrap-images/
É melhor do que definir margem ou mergulhar direto no código do Wordpress para quem não quer mexer no código, porque ele usa a função de desembrulhar nativa do jQuery para desembrulhar todas as imagens de suas tags p.
Espero que isso ajude alguém! Cheers, Brian
fonte
A resposta aceita me ajudou apenas com as imagens, mas o código revisado não processa bem as imagens vinculadas no meu site. Esta postagem do blog tem um código que funciona perfeitamente.
Aqui está o código:
Felicidades!
fonte
Eu não sou um especialista, mas passei a tarde inteira tentando resolver o img envolto em tags p e isso funcionou para mim.
Estou trabalhando em um tema baseado em wordpress e acabei de adicionar isso ao arquivo functions.js
Função Jquery desembrulhar
agora posso trabalhar pe img separadamente.
Também é possível adicionar uma div com uma classe diferente ao redor do img usando este:
este último não resolveu o meu problema porque queria criar tags p com display: none; então eu realmente tive que tirar esses img de lá.
fonte
Dependendo da postagem, outra solução poderia ser usar o plug-in WP não formatado para desativar a função auto-p por postagem.
fonte
Caso alguém procure uma maneira rápida e suja de corrigir isso para qualquer tag, aqui está o que eu fiz:
$allblocks = '(?:table|thead|tfoot|capti...
img
,a
, etc ... por exemplo, se ele termina em(...)menu|summary)';
mudança(...)menu|summary|a)';
para adicionar aa
tag e evitar autopeeing -lo. Observe o|
separador de tubulação - é sintaxe regex !É isso aí, feliz Wordpressing!
fonte