Intereting Posts
Do_shortcode в PHP-файле вне темы ALMOST works Как сделать перевод плагина WordPress готовым? Повторная установка проблемы с wordpress / mySQL Условный заголовок в wordpress Как запросить диапазон таксономии Как работать с ошибкой «этот адрес электронной почты уже используется»? Фильтр рекомендаций по рекламе Woocommerce, основанный на категории CPT Форма контакта, подтверждение значения поля выпадающего списка Добавить уведомление пользователям при первом входе в админ-зону Что мне делать? Многоуровневый, один веб-сайт или множество веб-сайтов? Разбиение страницы разбивается при объединении результатов поиска с дополнительным WP_Query После переключения multisite на nginx регистрация Buddypress прекратила работу Удалить существующего автора. Пользователь Frontend во время удаления настраиваемого типа сообщения Запросить пользователей, которые имеют одинаковые динамически сгенерированные роли в качестве текущего пользователя sql-запрос в shortcode не работает

Использование preg_replace для очистки вывода виджета HTML

Я работаю над сайтом wordpress, который использует виджет плагина / боковой панели. Проблема, которую я испытываю, заключается в том, что виджет генерирует HTML, который недействителен, пример этого ниже …

<p> <div>I am item 1</div> <div>I am item 2</div> <div>I am item 3</div> <div>I am item 4</div> <p></p> 

По моему мнению, в этом коде есть две вещи, первая из которых заключается в том, что она использует divs (элемент уровня блока) внутри Paragraph. Во-вторых, есть дополнительный P-тэг, который не закрыт в конце.

Я говорил с разработчиками виджета и, хотя это дорогой и платный плагин, не спешит исправлять проблему.

Я попытаюсь использовать preg_replace для очистки кода, мне было интересно, есть ли у кого-нибудь какие-либо примеры или учебные пособия для этого и нацелены только на код внутри контейнера виджета?

Я понимаю, что это может быть вопрос, который лучше всего подходит для stackoverflow, но, хотя я сначала попробую удачу 🙂

Самый чистый способ сделать это, не нарушая совместимости с переходом, – это создать собственный виджет, расширяющий класс виджета, который вы хотите исправить. Разделите его на простые основы конструктора и метод виджета (в котором вы исправляете HTML), затем присоедините функцию widgets_init после исходного виджета, который регистрирует ваш виджет и отменяет оригинал.