Я пытаюсь использовать preg_replace
и регулярное выражение для удаления скобок [
и ]
и всех символов внутри них из текстового вывода шаблона Twig v2 с использованием фильтра Twig.
Примером содержимого, выводимого Twig, является
Примером содержимого является [caption id = "attachment_4487" align = "alignright" width = "500"] Lorem Ipsum caption blah blah [/заголовок] и другое содержимое.
Я хочу удалить все, заключенное в скобки [
и ]
, оставив Lorem Ipsum caption blah blah
, а также An example of content is
и т. д.
Проблема в том, что сейчас, когда фильтр используется, я вообще не отображаю контент.Проблема может заключаться в конструкции фильтра для Twig;но я не получаю ошибок в журнале.Я протестировал регулярное выражение в https://regex101.com/r/sN5hYk/1, но это все еще может быть проблемой.
Существующий фильтр Twig https://twig.symfony.com/doc/2.x/filters/striptags.html лишает HTML, но не снимает скобки.
Это моя функция фильтра в functions.php:
add_filter('timber/twig', function($twig) {
$twig->addExtension(new Twig_Extension_StringLoader());
$twig->addFilter(
new Twig_SimpleFilter(
'strip_square_brackets',
function($string) {
$string = preg_replace('\[.*?\]', '', $string);
return $string;
}
)
);
return $twig;
});
И фильтр называется стандартным способом в файле template.twig:
{{ content|strip_square_brackets }}