Как я могу сделать специальный побег для Twig через Timber?
Я использую Twig и Timber в WordPress, и я хочу сделать индивидуальный переход для документации Twig.
$twig = new Twig_Environment($loader);
$twig->getExtension('Twig_Extension_Core')->setEscaper('csv', 'csv_escaper');
// before Twig 1.26
$twig->getExtension('core')->setEscaper('csv', 'csv_escaper');
Тем не менее, я не уверен, как это сделать при использовании Timber; Я не смог найти никаких документов по этому вопросу в Timber - возможно ли это без редактирования файлов ядра?
2 ответа
Решение
Попробовав ответ DarkBee, я нашел этот ответ на похожий вопрос, в котором они получили ту же ошибку, что и я, и после использования приведенного ниже кода у меня заработал пользовательский фильтр:
add_filter('timber/twig', 'blm_add_twig_custom_filters');
function blm_add_twig_custom_filters($twig) {
$twig->addExtension(new Twig_Extension_StringLoader());
$twig->addFilter(new Twig_SimpleFilter('e2', 'escape_no_double'));
return $twig;
}
/* Custom twig/timber escaper so it doesn't double encode html entities */
function escape_no_double($str) {
return htmlspecialchars($str, ENT_QUOTES | ENT_SUBSTITUTE, 'UTF-8', false);
}
Больше можно найти здесь.
Как видно из документации, вы можете использовать add_filter
добавить убегающего,
add_filter( 'timber/twig', function( \Twig_Environment $twig ) {
$twig->getExtension('Twig_Extension_Core')->setEscaper('csv', 'csv_escaper');
return $twig;
} );