#php #twig #rss #content-type #timber
#php #прут #RSS-канал #тип контента #древесина
Вопрос:
У меня есть пользовательский XML-RSS-канал WordPress, который скомпилирован из шаблона my-feed.rss.twig
Twig.
Есть ли способ установить Content-type: text/xml
заголовок в Timber::render
?
На данный момент следующее работает, но кажется банальным:
// Seems hacky, but works... Timber::render('my-feed.rss.twig', $context); header('Content-Type: ' . feed_content_type('rss-http'), true);
Комментарии:
1. Согласно документации для этого кода,
render()
«Передает данные в файл ветки и повторяет вывод». таким образом, ваш код, как показано, не работает. Если вы проверите свои журналы PHP, вы увидите уведомление «заголовки уже отправлены». Позвонитеheader('Content-Type: application/rss xml
);` прежде чем вы позвонитеTimber::render()
.2.@miken32 Да, заголовок, вероятно, должен быть раньше
Timber::render
, но мой пример работает. Никаких уведомлений и соответствующего заголовка типа содержимого. Еще раз: я действительно двигалсяheader()
раньшеTimer::render
, но результат для меня точно такой же. Мой вопрос был в том, нет ли лучшего способа, чем использоватьheader()
…3. Тогда их документация должна быть неверной, нет абсолютно никакого способа установить заголовок HTTP после вывода содержимого. Я думаю
header()
, что это единственная подходящая функция для установки заголовка HTTP.