Май
11
7

Определение браузера в 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. Постовой. Одна из лучших настольных игр — денежный поток – игра экономической бизнес тематики.
Поисковая контекстная реклама — эффективный метод продвижения сайтов.

рейтинг Оцените статью:
Ужасная статьяНичего интересногоТак себеНормальноХорошоКлассный постВ закладки!
(Пока без рейтинга, оцените первым!)  
Загрузка...

категория Категории: Возможности;
теги Теги: , , , .

комментариев 7 к статье “Определение браузера в wordpress”

  • Дмитрий   12.05.2010

    Спасибо. Попробую применить на своих блогах.

  • Василий   12.05.2010

    Интересно. За важную информацию. Надо заглядывать сюда почаще.

  • Артин   13.05.2010

    По мне так первый способ лучше, + «прописать в HEAD для шаблона без подключения лишних файлов стилей» дабы не грузить страницу лишним

  • Матвей   14.05.2010

    спасибо за инфу)))сейчас буду переделывать по твоей схем- надеюсь все получиться!!!

  • Света   20.05.2010

    спасибо за статью, будем приментяь

  • Иван   22.10.2010

    спасибо большое! очень полезная статья!
    особенное спасибо за : «…наличие встроенного механизма определения браузера в самом wordpress…»

  • Elrafir   06.06.2014

    Я бы только добавил такою мелочь как доступ к данным переменным.
    Чтоб долго не распылятся , ежли не работает то добавте доступ к глобально переменной которую проверяете.

    ну и т.п.

Оставить комментарий


Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!

Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:

Последние посты
Лучшее в категории
Облако тегов
Скажи свое мнение!

В чем основные плюсы Wordpress?

Посмотреть результаты

Загрузка ... Загрузка ...
Друзья проекта
Последние новости