Я искал высоко и низко для простого решения этого, но безрезультатно. Wordpress продолжает оборачивать мои изображения в p-теги, и из-за эксцентричной природы макета сайта, над которым я работаю, это очень раздражает.
Я создал решение jQuery для распаковки изображений, но это не так уж и здорово. Он запаздывает из-за загрузки других материалов на странице, поэтому изменения происходят медленно. Есть ли способ предотвратить перенос Wordpress только изображения с тегами p? Возможно, можно запустить крючок или фильтр.
Это происходит при загрузке изображения, а затем вставке его в редактор WYSIWYG. Вручную войти в представление кода и удалить теги p не вариант, так как клиент не настолько технически неэффективен.
Я понимаю, что изображения встроены, но то, как у меня есть изображения, закодированные на сайте, находится внутри элементов div и настроено на блокировку, поэтому они являются действительным кодом.
Ответы:
вот что мы сделали вчера на клиентском сайте, с которым у нас возникла именно эта проблема ... Я создал быстрый фильтр в качестве плагина и активировал его.
Если вы поместите его в php-файл в папке / wp-content / plugins и затем активируете его, он должен удалить теги p из любого параграфа, который просто содержит изображение.
Я не уверен, насколько сильным является регулярное выражение с точки зрения того, будет ли оно неудачным с выходами из других редакторов - например, если тег img закрыт только>, он потерпит неудачу. Если у кого-то есть что-то более сильное, это было бы очень полезно.
Ура,
Джеймс
--- Улучшенный фильтр ---
Для работы с изображениями, обернутыми в ссылки, он сохраняет ссылки в выводе и удаляет теги p.
источник
img
разметкой по умолчанию HTML5 , то есть<img ...>
без закрывающей косой черты. Лучше сделать это необязательным в своем регулярном выражении. Или еще лучше, вы можете оставить это, как.*
позаботится об этом.<img ...>
без/>
?По сути, вам нужно сделать так, чтобы WordPress обрабатывал img как элемент уровня блока для форматирования. Такие элементы жестко закодированы,
wpautop()
и список, к сожалению, не фильтруется.Что бы я сделал, это:
wpautop()
под другим именем.img
в регулярное выражение в$allblocks
переменной.wpautop
изthe_content
фильтра.the_content
.источник
возможно это поможет
Но затем вы добавите абзацы для всего остального вручную.
источник
Соску дали один / легкий путь.
Но я извлекаю изображение из контента и отображаю его отдельно.
источник
Этот пост немного старый, но есть гораздо более простое решение, за исключением CSS с вашей стороны.
Обертывание тега img в div имеет небольшой отрицательный эффект.
источник
Я разработал плагин, который исправил эту проблему: http://wordpress.org/extend/plugins/unwrap-images/
Это лучше, чем установка поля или погружение прямо в код Wordpress для тех, кто не хочет возиться с кодом, потому что он использует встроенную функцию развертывания jQuery, чтобы развернуть все изображения своих тегов p.
Надеюсь, это поможет кому-то! Ура, Брайан
источник
Принятый ответ помог мне только с изображениями, но пересмотренный код плохо обрабатывает связанные изображения на моем сайте. В этом посте есть код, который отлично работает.
Вот код:
Ура!
источник
Я не эксперт, но я провел весь день, пытаясь найти де-факто, заключенное в p-теги, и это сработало для меня.
Я работаю над темой на основе WordPress и просто добавил это в файл functions.js
Jquery функция развернуть
теперь я могу работать p и img отдельно.
Также можно добавить div с другим классом arround img, используя это:
последний не решил мою проблему, потому что я хотел сделать p-теги с display: none; так что я действительно должен был взять эти img оттуда.
источник
В зависимости от публикации, другим решением может быть использование плагина WP Unformatted для отключения функции auto-p для каждого поста.
источник
В случае, если кто-то ищет быстрый и грязный способ исправить это для любого тега, вот что я сделал:
$allblocks = '(?:table|thead|tfoot|capti...
img
,a
и т. д., например, если он заканчивается(...)menu|summary)';
изменением на,(...)menu|summary|a)';
чтобы добавитьa
тег и избежать его автоматического ввода . Обратите внимание на|
разделитель каналов - это синтаксис регулярных выражений !Вот и все, счастливого Wordpressing!
источник