BUG! in fuction force_balance_tags-wp add space
-
Здравствуйте,
я использую плагин php-exe в постах и страницах сайта, у меня стоит самая последняя версия WP
я столкнулся с проблемой выполнения кода PHP в постах если используется тэг —more— , другими словами там где есть это тэг код не выполняетсяя сделал дебажинг кода и выяснил что виновата функция нормализации кода, она запускается только когда используется тэг —more—
функция находиться в файле formatting.php и называется function force_balance_tags( $text )
как оказалось, при нормализации кода эта функция вносит ошибку, т.е.
в последовательность <? добавляется пробел между < и ? это делает любой код не работоспособным в постея нашел место где добавляется этот пробел:
// Attributes $attributes = $regex[2]; if( ! empty( $attributes ) && $attributes[0] != '>' ) $attributes = ' ' . $attributes; <!-- вот тут --> $tag = '<' . $tag . $attributes . '>'; //If already queuing a close tag, then put this tag on, too if ( !empty($tagqueue) ) { $tagqueue .= $tag; $tag = ''; }
я также нашел способ как временно устранить этот баг:
// Attributes $attributes = $regex[2]; $shdstrphp = strpos($regex[0], '<?'); //добавлена переменная для проверки строки атрибутов (как правило в ней и содержится строка с кодом)и если она есть то выполняется обход нормализации if ($shdstrphp === false) { if( !empty( $attributes ) && $attributes[0] != '>' ) { $attributes = ' ' . $attributes;} $tag = '<' . $tag . $attributes . '>';} else { $tag = $regex[0];} //If already queuing a close tag, then put this tag on, too if ( !empty($tagqueue) ) { $tagqueue .= $tag; $tag = ''; }
но после обновления wp естественно все вернулось обратно,
прошу вас исправить ошибку, т.к. она делает полностью нерабочим код в постах особенно когда выполняется авто обновление wp
- Тема «BUG! in fuction force_balance_tags-wp add space» закрыта для новых ответов.