Фильтр содержимого шорткода?
Я что-то ищу, но точно не знаю, что именно.
У меня есть шорткод, назовем его [шорткод].
Пользователи будут вводить HTML-теги внутри, в основном изображения, но также ссылки, изображения в ссылках и т.д., Например:
[shortcode]
<img src="http://www.site.com/myimage.jpg" />
<a href="http://www.blabla.com"><img src="http://www.site.com/myimage2.jpg" /></a>
(...)
[/shortcode]
Дело в том, что я хочу форматировать URL-адреса по-другому, я хочу, чтобы каждый img src начинался с файлов/myimagescript?
Таким образом, приведенный выше код должен выводить:
<!--- shortcode code before input -->
<img src="files/myimagescript?http://www.site.com/myimage.jpg" />
<a href="http://www.blabla.com"><img src="files/myimagescript?http://www.site.com/myimage2.jpg" /></a>
(...)
<!-- shortcode code after input -->
Поэтому в основном мне нужно просто изменить src изображений. И он должен работать для любого количества изображений, от 1 до неограниченного.
Я думаю о цикле PHP для каждого, но я не уверен, как захватить каждую строку img src из шорткода и обработать ее перед отображением?
1 answers
Вы можете использовать регулярное выражение, чтобы найти свой src и использовать его для добавления ваших "файлов/myimagescript?" к нему:
function append_myimagescript($attr, $content){
$pattern = '/src="([^"]*)"/i';
$replacement = 'files/myimagescript?${1}';
return preg_replace($pattern, $replacement, $content);
}