Ваш код на самом деле очень близко.
Если вы взгляните на this list всех ваших крючков действия, вы увидите, что действие send_headers
происходит до того, как объект Wordpress полностью настроен.
Это означает, что обычные объекты и функции, которые ссылаются на глобалы Wordpress, не будут работать в этой точке жизненного цикла. Фактически вам нужно заглянуть в ядро чуть позже, чтобы вы могли получать данные, связанные с Post.
Я не уверен, почему у вас есть проверка is_admin() ||
, префикс вашего действия. add_action
возвращает звонок add_filter
(Source), который, в свою очередь, возвращает логическое значение true
(Source).
Короткое замыкание не будет никакой пользы для вас здесь, так что я изменил свой код на следующее:
add_action('wp', function(){
global $post;
$title = get_the_title($post->ID);
header('X-IC-Title:' . $title);
}, 1);
Я проверил это в чистой установке Bedrock на сервере Homestead и я вижу новый заголовок в моем сетевом выходе (скриншот прилагается).
Надеется, что это помогает!
Что значит «ничего не печатает»? Заголовки HTTP не печатаются в браузере. Вы имеете в виду, что вы не видите добавленные заголовки в своем запросе? – maiorano84
, пожалуйста, объясните вопрос –
@ maiorano84 Извинения за мою терминологию. Да, я имею в виду, что я не вижу заголовки HTTP, которые я запросил. – Mike