Intereting Posts
WP_Query не получает все сообщения, только помеченные сообщения Получить значение настраиваемого поля категории Доступ к медиа-библиотеке Отображение таксономии. Дети в раскрывающемся списке без кнопки отправки. Каким может быть отличный пользовательский тип сообщения? Как удалить в базе данных WordPress все сообщения, кроме последних трех? Почему эта проверка позволяет проверить, разрешено ли пользователю редактировать сообщение, для всех, кроме супер-администраторов? Объявить глобальную переменную, которая может быть использована для другой функции Создать шаблон главной страницы и отдельную страницу для сообщений? Перенаправление старой ссылки на новую Как использовать несколько запросов с тем же мета-ключом Листинг подстраниц заголовка и содержимого и стилизация первой итерации по-разному Шаблон страницы с именованием имен боковых панелей? Страницы, перенаправленные в прикрепленное сообщение WordPress не может просматривать запланированные сообщения

Modernizr и WordPress – Как добавить класс CSS в элемент html?

Инструкции для реализации Modernizr утверждают, что я должен добавить class="no-js" в элемент <html> .

Есть ли способ сделать это в WordPress, используя крючок или фильтр? Если это вообще возможно, я бы предпочел сделать это без редактирования файлов темы.

Solutions Collecting From Web of "Modernizr и WordPress – Как добавить класс CSS в элемент html?"

Это не совсем ответ, но вы можете использовать hook для фильтра language_attributes . Это действие запускается с <html> и то, что он делает, просто эхо-строка lang=en , например. Вы можете подключиться к этому и заменить строку своим классом CSS следующим образом:

 add_filter('language_attributes', 'modernizr'); function modernizr($output) { return $output . ' class="no-js"'; } 

Это работает только тогда, когда ваша тема соответствует Контрольному списку разработки WordPress . Иногда люди не следуют этому, и это нарушает технику.

Немного поздно в игре здесь, но просто чтобы добавить к ответу @Rilwis, вы можете добавить скрипт к функции, которая проверяет, добавлены ли атрибуты языка no-js или нет.

Хотя я не использую Modernizr, я использую сценарий обнаружения no-js с двадцать шестнадцатого, поэтому включение в него почти одинаково. Выполняя это так, вам не нужно беспокоиться об удалении функции, добавленной в wp_head или wp_enqueue_scripts поскольку это происходит автоматически при удалении фильтра.

Добавление метода удаления фильтра

 /** * Javascript Detection Filter * * remove_filter( 'language_attributes', 'lang_atts_js_detect' ); */ add_filter( 'language_attributes', 'lang_atts_js_detect' ); function lang_atts_js_detect($output) { return $output . ' class="no-js"'; } add_action( 'wp_head', function() { if ( has_filter( 'language_attributes', 'lang_atts_js_detect' ) ) { echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; } }, 0); 

Подход к теме поддержки

Другой вариант – сделать это с помощью current_theme_supports .

 /** * Javascript Detection Theme Support * * add_theme_support( 'js-detect' ); */ add_action( 'init', function() { if ( current_theme_supports( 'js-detect' ) && !is_admin() ) add_filter( 'language_attributes', 'lang_atts_js_detect_class' ); add_action( 'wp_head', 'lang_atts_js_detect_script', 0 ); } function lang_atts_js_detect_class($output) { return $output . ' class="no-js"'; } function lang_atts_js_detect_script() { echo "<script>(function(html){html.className = html.className.replace(/\bno-js\b/,'js')})(document.documentElement);</script>\n"; }