Главная Новости

Определение браузера в wordpress

Опубликовано: 01.09.2018

видео Определение браузера в wordpress

Браузер Google Chrome - Как определить код цвета в браузере

Недавно при работе над моим новым блогом про 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]-->

<!--[IF IE 6]><link rel="stylesheet" type="text/css" media="screen" href="css/cssf-ie6.css" /><![endif]-->

Его достаточно часто используют верстальщики. Так вот в этом css файле можно задать стиль для ссылки, что контролировал ее отображение. Используется при этом свойство display: none; Точнее оно именно ссылку скрывает, а в ИЕ нужно было бы наоборот ее показывать. В принципе, наверное, можно даже стиль прописать в HEAD для шаблона без подключения лишних файлов стилей.


Что такое виджеты и сайдбар при работе с wordpress?

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 ; }

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>' ; } ?>

<?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 } ?>

<?php if ($is_IE) { ?> <div class="fullpost"><a href="<?php the_permalink() ?>">Читать далее »</a></div> <?php } ?>

Сохраняем и тестируем его работоспособность. В моем случае все прошло как нельзя лучше, wordpress сама отлично справилась с определением браузера и нужная задача была решена. Вот так вот иногда система приятно удивляет.

P.S. Постовой. Одна из лучших настольных игр — денежный поток – игра экономической бизнес тематики.

Поисковая контекстная реклама — эффективный метод продвижения сайтов.

rss