Фильтр содержимого шорткода?


Я что-то ищу, но точно не знаю, что именно.

У меня есть шорткод, назовем его [шорткод].

Пользователи будут вводить 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 из шорткода и обработать ее перед отображением?

Author: Wordpressor, 2011-03-09

1 answers

Вы можете использовать регулярное выражение, чтобы найти свой src и использовать его для добавления ваших "файлов/myimagescript?" к нему:

function append_myimagescript($attr, $content){ 
    $pattern = '/src="([^"]*)"/i';
    $replacement = 'files/myimagescript?${1}';
    return preg_replace($pattern, $replacement, $content);
}
 2
Author: Bainternet, 2011-03-09 22:34:32