Определение браузера в 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, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Плагин Lightbox Plus – улучшенный эффект для изображений
- Скрываем custom fields для не админов, функция remove_meta_box()
- Видеокурс WordPress Security по защите блога на WordPress
- Плагины смайликов в wordpress блоге
- Обновление WordPress подробно для начинающих
- Лишние ссылки с WordPress прочь
- Вставка PHP кода в WordPress через виджеты
- Безопасность (3)
- Видео (5)
- Возможности (53)
- Начинающим (16)
- Новости (19)
- Оптимизация (12)
- Плагины (61)
- Сервисы (10)
- Хаки и секреты (39)
- Шаблоны (13)
- Записи и посты wordpress, оформление записи






(6,15 из 7, голосов - 20) - 17 полезных приемов и хаков для WordPress






(5,44 из 7, голосов - 9) - Что нового в WordPress 3.1






(5,38 из 7, голосов - 8) - Как добавить дополнительные кнопки в редактор WordPress






(5,25 из 7, голосов - 8) - Ссылка читать далее в wordpress – тег more






(5,00 из 7, голосов - 8) - Интернет магазин на wordpress – плагин UWCart






(4,63 из 7, голосов - 8) - Вывод категорий для поста через функцию get_the_category






(4,50 из 7, голосов - 8)
- Seleckis.lv — Журнал Никиты Селецкого
- Блогинг в стиле web 2.0
- Достопримечательности Львова
- Про блоги для блоггеров
- WordpressPlugins.ru
- Более шестидесяти новых приложений для Timeline в Facebook
- Пользователям ICQ: в любимой программе теперь есть радио!
- Новостной украинский агрегатор Like.ua – что это?
- Foursquare представил миру возможность персонализированного поиска
- Google выставлено публичное обвинение в пиратстве
- Для Windows Phone 7 выпущен новый WebMoney Keeper Mobile
- Ноутбуки с 3D-чипами станут более производительными

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