«Element link is missing required attribute property» при проверке страниц темы Nirvana в WordPress

Проверяем код нашего сайта на бесплатном сервисе проверки http://validator.w3.org/
Предупреждения (warnings) пока можем игнорировать. Работаем именно над ошибками (errors).
В данном примере проверяем страницы сайта на WordPress, использующего тему Nirvana.

Проверка главной страницы сайта выдала ошибку о том, что
Element link is missing required attribute property
— «споткнувшись» на таком html-коде:

<link rel=’stylesheet’ id=’nirvana-mobile-css’ href=’http://gemcafe.ru/wp-content/themes/nirvana/styles/style-mobile.css?ver=1.2.3′ type=’text/css’ media=’all’ />

В footer.php: в этом месте идёт вызов: <?php wp_footer(); ?>

Решение

Поиском по подстроке style-mobile.css нахожу в папке темы файл \includes\theme-styles.php, в котором часть вышеприведенного html-кода генерируется php-кодом:
if ($nirvana_mobile=="Enable")
{ wp_enqueue_style( 'nirvana-mobile', get_template_directory_uri() . '/styles/style-mobile.css', NULL, _CRYOUT_THEME_VERSION );
}

— внутри function nirvana_load_mobile_css(), после объявления которой добавляется действие
add_action ('wp_head','nirvana_load_mobile_css', 30);
то есть код — должен создаваться при формировании заголовка (в действии wp_head). Когда этот код (link rel) помещается в заголовке (внутри head), то на это валидатор не ругается, а когда внутри body, то это, с его точки зрения — ошибка. Не буду пока разбираться, почему этот код в футере появляется… (возможно, для того, чтобы стили грузить не сначала, а позже — для ускорения загрузки предшествующего кода).

Смотрю на то, что есть в коде theme-styles.php.

Похоже, при включенном параметре $nirvana_mobile=»Enable» этот код и генерируется.
Пробую отключить его.
Нашёл в настройках темы (в админке сайта) — см. Внешний вид — Nirvana Settings в «Настройки раскладки страницы» параметр «Отзывчивость» (видимо, такой перевод с «RESPONSIVENESS» — см. в файле \includes\custom-styles.php), который отвечает за адаптивность шаблона (подстраивание под различные браузеры, в том числе и мобильные — определение параметра прописано в \admin\settings.php) и отключаю.

После этого код не генерируется и страница проходит валидацию без ошибки.

Пробовал я после этого открывать свой сайт на смартфоне — страницы отображаются нормально. Так что оставлю пока сайт работать с $nirvana_mobile=»Disable».

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *