Как вернуть содержимое в <head>через конечную точку API WordPress - PullRequest
0 голосов
/ 10 октября 2019

Итак, я пытался расширить Wordpress API для получения содержимого, которое Wordpress выводит в <head>.

Я зарегистрировал свою конечную точку примерно так в functions.php моей темы:

add_action('rest_api_init', function () {
  register_rest_route( 'hs/v1', 'header',array(
                'methods'  => 'GET',
                'callback' => 'get_head_content'
      ));
});

И обратный вызов выглядит следующим образом, но возвращает только пустые массивы для каждого ключа:

function get_head_content() {

    $result = [];
    $result['scripts'] = [];
    $result['styles'] = [];

    // Print all loaded Scripts
    global $wp_scripts;
    foreach( $wp_scripts->queue as $script ) :
       $result['scripts'][] =  $wp_scripts->registered[$script]->src . ";";
    endforeach;

    // Print all loaded Styles (CSS)
    global $wp_styles;
    foreach( $wp_styles->queue as $style ) :
       $result['styles'][] =  $wp_styles->registered[$style]->src . ";";
    endforeach;

    return $result;
}

Так что я предполагаю, что get_head_content ничего не возвращает, так как ничего не было поставлено в очередь, потому что яя на самом деле не запускаю очередь, попав в конечную точку API. Это действительно не выводит весь <head> в виде строки, которая была бы моей главной целью.

Кто-нибудь знает, как этого добиться?

Цените помощь!

1 Ответ

0 голосов
/ 11 октября 2019

Вы можете использовать выходной буфер и get_header:

function get_head_content() {
    ob_start();
    get_header();
    $header = ob_get_contents();
    ob_end_clean();

    return $header ;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...