Модератор
Юрій
(@yube)
function yb_unbreak_form($content) {
$content = preg_replace_callback(
'|(<form.*?</form>)|is', 'yb_unbreak', $content);
return $content;
}
function yb_unbreak($a) {
return str_replace('<br />', '', $a[1]);
}
add_filter('the_content','yb_unbreak_form', 9999);
Юрий, благодарю.
Эти функции можно просто вставить в wp-includes/default-filters.php ? Или куда как? (Ща экпеременить не могу. Да и я не настолько знаю ВП. 🙁 )
И насколько я понимаю — эти функции не отменяют wpautop, и должны работать после него. Т.е. это как бэ доп. нагрузка. Правильно ж?
Модератор
Юрій
(@yube)
Ни в коем случае не надо трогать файлы движка! Такие прибамбасы вставляются либо в functions.php активной Темы, либо оформляются как плагины.
Да, работает после всей встроенной обработки, вычищая все брыки внутри форм (если быть точным, то не все, а только <br />
, оставляя <br>
и <br/>
— можно сказать, это фича, позволяющая автору безнаказанно побрыкаться в форме).
Доп. нагрузка, разумеется, имеет место быть, но заметной она будет только на мегабайтных постах.
Ни в коем случае не надо трогать файлы движка! Такие прибамбасы вставляются либо в functions.php активной Темы, либо оформляются как плагины.
Вставить в functions.php темы не очень хоцца просто по причине того, что тем планируется много (с полсотни минимум), да и к тому же они периодически обновляются.
Вариант с плагом вероятно был бы удобней в плане юзания, но у меня для этого ума не хватит. Да и опять — это ж доп. нагрузка. (Я вообще предпочитаю юзать плаги только там, где уж очень надо и нельзя\немогу обойтись правкой кода).
Поэтому и хотелось исправить «глобально» в движке. (Теплится надежда что этот баг когда-нить будет пофиксен)
(если быть точным, то не все, а только <br />
, оставляя <br>
и <br/>
— можно сказать, это фича, позволяющая автору безнаказанно побрыкаться в форме).
Ну там ещё параграфы надо почистить. Но эт я уже сам в состоянии 😉
А побрыкаться думаю вряд ли удастся — в formatting.php:
function esc_textarea( $text ) {
$safe_text = htmlspecialchars( $text, ENT_QUOTES );
return apply_filters( 'esc_textarea', $safe_text, $text );
}
Хотя смотря что Вы имели ввиду 😉