Привет, я работаю над темой WordPress и написать собственный виджет, он работает правильно. Но когда я делаю wp_debug = true, это дает эту ошибку
Не рекомендуется: preg_replace (): модификатор / e устарел, вместо этого используйте preg_replace_callback в ….
Вот мой код preg_replace
$status = preg_replace("/((http:\/\/|https:\/\/)[^ )]+)/e", "'<a href=\"$1\" title=\"$1\" $target >'. ((strlen('$1')>=$linkMaxLen ? substr('$1',0,$linkMaxLen).'...':'$1')).'</a>'", $status);
Я пытаюсь изменить это так
$status = preg_replace_callback(
"/((http:\/\/|https:\/\/)[^ )]+)/e",
function($matches) {
return "'<a href=\"$1\" title=\"$1\" $target >'. ((strlen('$1')>=$linkMaxLen ? substr('$1',0,$linkMaxLen).'...':'$1')).'</a>'";
},
$status
);
Но это не работает. Как я могу это исправить?
В обратном вызове заменить $1
от $matches[1]
:
function($matches) {
return "'<a href=\"$matches[1]\" title=\"$matches[1]\" $target >'
. (
( strlen($matches[1]) >= $linkMaxLen ?
? substr(matches[1], 0, $linkMaxLen).'...'
: matches[1]
)
)
.'</a>'"},
Других решений пока нет …