"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 не будет опубликован. Обязательные поля помечены *