I've got a simple header file which calls the wp_head method, however when i inspect the source the css links are made in the body and the <head> is empty.

My header.php:

<!DOCTYPE html>
<html lang="en">

<?php wp_head(); ?>
<?php get_template_part( 'components/navigation/navigation', 'main' ); ?>

My functions.php:

function load_scripts() {
    echo ' test';
    wp_enqueue_style( 'style', get_stylesheet_uri() );
add_action('wp_enqueue_scripts', 'load_scripts');




This is your browser's attempt to avoid invalid markup. Your echo ' test'; outputs something that does not belong in a head tag, so the browser closes it and opens the body tag. If you look at the actual unprocessed response from the server, it won't appear this way, but that echo shouldn't be there regardless, and this issue will disappear when you remove it.

  • Hi, Thanks for your answer, however, after removing the echo statement it still comes out in the body. – Niek May 12 '18 at 17:04
  • Then you have something else outputting something other than a valid tag in your head. – Milo May 12 '18 at 17:06
  • This legit helped me track down the issue I was also having. Thx! – Gurnzbot Dec 12 '19 at 18:06

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.