Очередной блог фрилансера

коротко и полезно о веб-разработке

Menu Close

Как загружать дефолтную тему WordPress для IE6

Снова и снова поднимается один и тот же вопрос… Что нам делать с проблемой IE6?

Конечно, существует огромное количество различных средств, доступных вам: вы можете показывать пустую страницу для пользователей IE6, направить внимание на современные браузеры и вообще игнорировать IE6, или вы можете отображать небольшое сообщение для пользователей IE6, предлагающее обновить их браузер (делается очень просто, с помощью этого плагина).

Но, если вы не хотите обижать пользователей IE6, однако, при этом, вам некогда отлавливать всевозможные глюки этого браузера, есть отличное решение, которое замечательно подойдет вам.

Определяем текущий браузер

Итак, нам нужно определить User Agent наших посетителей. Если посетитель использует браузер IE6, мы должны сообщить WordPress’у о загрузке дефолтной темы (Кубрик).

Поэтому, для определения User Agent, мы используем, немного PHP-магии.

if (strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false) {
// do something
}

Здесь, выражение if определяет, использует ли пользователь браузер IE6 в качестве User Agent. Следует заметить, что некоторые браузеры позволяют пользователям скрывать их User Agent. Так что, теоретически вполне возможно, что кто-нибудь скроет User Agent IE6, а потом забудет переключить обратно. Возможно, конечно, но маловероятно.

Сообщаем WordPress об использовании темы по умолчанию

Теперь, когда мы знаем с помощью какого браузера к нам пришел посетитель, нам следует сообщить WordPress’у, что нужно делать с этой информацией. К счастью, WordPress предлагает некоторые фильтры для нашего использования. Код выглядит следующим образом (включая проверку браузера, указанную выше):

add_filter('template', 'serve_default_to_iesix');
add_filter('option_template', 'serve_default_to_iesix');
add_filter('option_stylesheet', 'serve_default_to_iesix');
function serve_default_to_iesix($theme) {
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false)
$theme = 'default';

return $theme;
}

Создаем плагин

Поскольку этот небольшой фрагмент функциональности используется для определения, какая из тем загружена, вы не можете использовать файл functions.php для выполнения этого кода. Но, вы вполне можете использовать плагин, не беспокойтесь, код достаточно простой:

<?php
/*
Plugin Name: Serve Default to IE6
Plugin URI: http://www.nathanrice.net/blog/serve-ie6-visitors-the-default-wordpress-theme
Description: This plugin will serve the default theme to any visitors using IE6.
Author: Nathan Rice
Author URI: http://www.nathanrice.net/
Version: 1.0
*/

add_filter('template', 'serve_default_to_iesix');
add_filter('option_template', 'serve_default_to_iesix');
add_filter('option_stylesheet', 'serve_default_to_iesix');
function serve_default_to_iesix($theme) {
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false)
$theme = 'default';

return $theme;
}
?>

Если не хотите скопировать код, и сохранить в качестве php-файла, можете скачать готовый плагин. Просто скачайте его и активируйте в панели управления.

Обратите внимание, что функциональность зависит от динамической загрузки шаблонов, так что плагин не будет работать одновременно с плагином, похожим на WP-Super-Cashe.

Вот и все. Теперь, пользователи IE6, увидят ваш блог в оформлении дефолтной темы. Но вам не обязательно останавливаться на этом. Если вы хотите использовать какую-либо другую тему, специально предназначенную для пользователей IE6, то это не проблема. Вам достаточно знать, как она называется, чтобы заменить в коде слово «default» на название вашей темы (чувствительно к регистру). Например, если вы хотите загружать для пользователей IE6 классическую тему, вам нужно изменить код, следующим образом:

...
if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false)
$theme = 'classic';
...

Перевод статьи «Serve IE6 Visitors the Default WordPress Theme«, автор Nathan Rice

Рассказать друзьям

Понравилась статья? Лучший способ сказать спасибо - поделиться ссылкой в социальных сетях: