Определение браузера в wordpress
Недавно при работе над моим новым блогом про typo3 возникли небольшие сложности с шаблоном. Дело в том, что там используются какие-то скрипты, которые из текста делают картинки – выглядит достаточно красиво, поэтому я решил не убирать. Сложность заключатся в том, что под Internet Explorer эта опция работает не до конца и ссылка «нажимается» только при наведение на буквы заголовка статьи, а между ними или, например, внутри буквы «о» линк не хочет никак реагировать. В общем, решил добавить в конце анонса статьи ссылку «читать далее», но выводить ее только для IE. Короче говоря, у нас возникает задача определения браузера пользователя в wordpress.

Как это часто бывает, вариантов решения задачи есть несколько. Привожу вам все, а вы уж решайте сами какой из них наиболее оптимальный и подходящий.
1. Во-первых, можно вспомнить классических CSS хак для подключения таблицы стилей специально для Internet Explorer.
<!--[IF IE 6]><link rel="stylesheet" type="text/css" media="screen" href="css/cssf-ie6.css" /><![endif]-->
Его достаточно часто используют верстальщики. Так вот в этом css файле можно задать стиль для ссылки, что контролировал ее отображение. Используется при этом свойство display: none; Точнее оно именно ссылку скрывает, а в ИЕ нужно было бы наоборот ее показывать. В принципе, наверное, можно даже стиль прописать в HEAD для шаблона без подключения лишних файлов стилей.
2. Автор проекта maxsite предлагает несколько иной метод, но похожий на первый – написать функцию определения браузера. Например, можно использовать такой код:
function maxsite_testIE() { $user_agent = $_SERVER['HTTP_USER_AGENT']; $browserIE = false; if ( stristr($user_agent, 'MSIE 7.0') ) $browserIE = true; // IE7 if ( stristr($user_agent, 'MSIE 6.0') ) $browserIE = true; // IE6 if ( stristr($user_agent, 'MSIE 5.0') ) $browserIE = true; // IE5 return $browserIE; }
Размещает функцию в файл functions.php, а затем в любой файл шаблона, в зависимости от того, где нужно выводить текст или проверять условие браузера, добавляем строки:
<?php if ( maxsite_testIE() ) { echo '<a href="http://www.mozilla-europe.org/ru/products/firefox/"> Не ущемляй себя!<br /> Установи нормальный браузер!</a>'; } ?>
3. В принципе, ничего сложного. Первые 2 метода вполне могли бы использоваться для блогов и сайтов wordpress, если бы не наличие встроенного механизма определения браузера в самом wordpress. Многим данный факт неизвестен, поэтому они придумывают разные методы решения поставленной задачи. Но некоторые «умельцы» нашли в коде или в документации системы глобальные переменные, отвечающие за разные браузеры:
- * $is_lynx
- * $is_gecko
- * $is_IE
- * $is_winIE
- * $is_macIE
- * $is_opera
- * $is_NS4
- * $is_safari
- * $is_chrome
- * $is_iphone
По умолчанию эти переменные установлены в False и принимают значение True как только загружаемая страница сайта использует тот или иной браузер. Не смотря на то, что переменные не поддерживают определение разных версий браузеров, они в моем случае весьма сгодятся.
Остается только зайти в файл шаблона блога и добавить условия проверки браузера по типу такого:
<?php if ($is_IE) { ?> <div class="fullpost"><a href="<?php the_permalink() ?>">Читать далее »</a></div> <?php } ?>
Сохраняем и тестируем его работоспособность. В моем случае все прошло как нельзя лучше, wordpress сама отлично справилась с определением браузера и нужная задача была решена. Вот так вот иногда система приятно удивляет.
P.S. Постовой. Интересная статья про масштабный кросспостинг в интернет сервисы.
Одна из лучших настольных игр – денежный поток – игра экономической бизнес тематики.
Поисковая контекстная реклама – эффективный метод продвижения сайтов.
Комментариев - 6 к статье “Определение браузера в wordpress”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Добавление миниатюры (thumbnail) в RSS для wordpress
- Category SEO Meta Tags – МЕТА данные для категорий и тегов
- 10 плагинов для админ панели WordPress
- LinkGator.ru – биржа вечных ссылок и статей
- Смена рубрики и массовое редактирование wordpress постов
- Paylicense – хостинг с широким спектром услуг
- WP-RecentComments – плагин и виджет последних комментариев
- Безопасность (4)
- Видео (5)
- Возможности (58)
- Начинающим (18)
- Новости (20)
- Оптимизация (13)
- Плагины (66)
- Сервисы (14)
- Хаки и секреты (43)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи
- 17 полезных приемов и хаков для WordPress
- Обновление WordPress подробно для начинающих
- Ссылка читать далее в wordpress – тег more
- Как добавить дополнительные кнопки в редактор WordPress
- Что нового в WordPress 3.1
- Похожие статьи в wordpress без плагинов с использованием категорий блога
- Блог про смартфоны
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Ттелефон Explay Titan в Связном
- Ericsson и планка скорости
- Новая линейка от HTC
- Dr.Web Light 7 для Android
- Самый популярный сервис платежей – Яндекс.Деньги
- Моделирование. Этапы моделирования.
- Шопинг в Европе и требуемые документы
- Последняя версия Google Chrome вышла с ошибкой
- Порядка 70 процентов не доводят покупки в сети Интернет до конца
- Рекламу в социальных сетях автоматизирует сервис AdCenter
- Тестирование новой разработки Интернет-агентства Registratura.ru

Оцените статью: 
Категории:
Теги:
Спасибо. Попробую применить на своих блогах.
Интересно. За важную информацию. Надо заглядывать сюда почаще.
По мне так первый способ лучше, + «прописать в HEAD для шаблона без подключения лишних файлов стилей» дабы не грузить страницу лишним
спасибо за инфу)))сейчас буду переделывать по твоей схем- надеюсь все получиться!!!
спасибо за статью, будем приментяь
спасибо большое! очень полезная статья!
особенное спасибо за : «…наличие встроенного механизма определения браузера в самом wordpress…»