j13th
@j13th

Код из head грузится в body — Wordpress, как исправить?

Подскажите, пожалуйста, как победить проблему в wp, когда весь код из тега head грузится в тег body?

Проверил functions, отключал поочередно плагины, проверил файлы шаблонов, менял местами wp_head (хоть он и должен быть перед </head>), ноль результата. При этом сразу после открывающего body есть непонятное 

5ef09d634c58e248871231.png

Код header.php:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ru" lang="ru">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE">
<meta name="format-detection" content="telephone=no">
<!-- Google Tag Manager -->

<!-- End Google Tag Manager -->
<meta name="robots" content="index, follow">	
<link rel="icon" href="/favicon.ico" type="image/x-icon">
<title><?php wp_title();?></title>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"/></script>
<script type="text/javascript" src="<?php echo get_template_directory_uri() ?>/js/scripts.js?v=<?php echo time();?>"/></script>
<?php wp_head(); ?>
</head>
<body>
<!-- Google Tag Manager (noscript) -->

<!-- End Google Tag Manager (noscript) -->
	<div class="topContent">
		<div class="head">
		<div>
			<div class="logo">
				<a href="/" title="На главную">
					<img src="<?php echo get_template_directory_uri() ?>/img/logo.png" alt="">
				</a>
			</div>
			<div class="headContact">
				<div class="phone">XXXXXXXX</div>
				<div class="menu"><img src="<?php echo get_template_directory_uri() ?>/img/clock.png" alt="" class="smallInlineImg">ежедневно, с 9:00 до 21:00</div>
			</div>
			<div class="slogan"><span>slogan</span></div>
		</div>
		</div>
		<?php wp_nav_menu( array( 'container_class' => 'menu', 'theme_location' => 'headerMenu' ) ); ?>


Список используемых (активных) плагинов:

All In One SEO Pack
Classic Editor
Contact Form 7
Crelly Slider
Easy FancyBox
jQuery Colorbox
Nested Pages
RusToLat
SEO Ultimate
WP No Category Base
WP-No-Format
WP-PageNavi

P.S. Проблема на всех страницах сразу, стало быть что то одно портит
  • Вопрос задан
  • 621 просмотр
Пригласить эксперта
Ответы на вопрос 1
sergeiermilov
@sergeiermilov
Веб-дизайн, фронтенд и WordPress разработка
В основном, когда браузер впервые сталкивается с элементом, который не должен быть в head, например, с элементом img, он закрывает head и вместо этого запускает body. Так что возможно, что есть что-то перед wp_head, что вызывает проблему.

Вам нужно изучить фактический вывод HTML на наличие ошибок, а не смотреть на PHP, чтобы выяснить, что является причиной проблемы. Попробуйте запустить сайт через validator.w3.org и посмотреть на первые несколько ошибок, которые он найдет.

Вы, вероятно, смотрите на исходник страницы с помощью инспектора браузера, который показывает вам DOM в памяти после того, как браузер исправил его, а не истинный исходник страницы, который, вероятно, будет в другом порядке. В Chrome, например, сравните разницу между использованием Web-инспектора и View->Developer->View Page Source, который покажет вам реальный код вывода до того, как браузер обработает его).

Еще можно попробовать поставить wp_head в самое начало перед head. Может быть есть ошибки в scripts.js, который идет перед head.

В любом случае, это попытка вашего браузера избежать недействительной разметки. Сайт выводит что-то, что не принадлежит тегу head, поэтому браузер закрывает его и открывает тег body. Если не плагины, то может быть в functions.php. Надо смотреть хуки для подключения CSS, JS, jQuery и добавления мета-тегов.

Например, во всех wp_enqueue_script добавить $in_footer = true для вывода скриптов в футере.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы