Определение браузера в 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”
Блог Wordpress Inside поможет вам научиться работать в вордпресс, закрепить и расширить имеющиеся знания. Плагины и шаблоны, разные хаки и функции wp, оптимизация и безопасность системы – все это и намного больше вы сможете найти на страницах нашего проекта!
Если хотите быстро и оперативно получать последние новости и статьи, то рекомендуем подписаться на обновления блога:
- Як сховати відсутні товари в Woocommerce шорткодах та схожих товарах
- Сервіс AdMaven + плагін для монетизації трафіка на WordPress сайтах
- Плагіни для створення стрічки новин з біжучим рядком в WordPress
- Як змінити розміщення кнопки оформлення замовлення в WooCommerce
- Плагін WHWS Display In Stock Products First – відображення товарів в наявності першими
- Підписка MonsterONE: чи варто використовувати цей сервіс у 2023 році? (+5 продуктів, які треба скачати в першу чергу)
- Онлайн генератор ссылок на мессенджеры для WordPress и не только
- WooCommerce (46)
- Безопасность (12)
- Видео (6)
- Виджеты (28)
- Возможности (141)
- Вопрос-ответ (6)
- Начинающим (52)
- Новости (46)
- Оптимизация (23)
- Плагины (246)
- Сервисы (87)
- Хаки и секреты (87)
- Шаблоны (45)
- Записи и посты wordpress, оформление записи (5,91 из 7, голосов - 47)
- Проблема с адаптивными изображениями в Gutenberg редакторе WordPress (3,93 из 7, голосов - 44)
- Умный копирайт в footer.php для wordpress (5,63 из 7, голосов - 30)
- Обновление плагинов и тем в WordPress: автоматическое, через FTP, скрытие уведомлений (5,19 из 7, голосов - 31)
- Polylang — плагин для мультиязычных сайтов на нескольких языках в WordPress (4,42 из 7, голосов - 31)
- Плагин TinyMCE Advanced – wordpress текстовый редактор (6,35 из 7, голосов - 20)
- Рубрики и категории wordpress, функция wp_list_categories (6,05 из 7, голосов - 20)
- Дизайн Мания - о веб-дизайне и не только.
- Tod's Blog - все про заработок онлайн.
- Вебдванольные заметки - обзоры веб-сервисов.
- Зачем нужны Wi-Fi ретрансляторы и как выбрать подходящую модель
- Введение в онлайн-казино Slotor777: многообразие игр и привлекательные бонусы
- Необходимость использования облачного хранилища в наше время, что важно и как выгодно?
- Спрощення процесу звітності за допомогою програми BAS Бухгалтерія
- Технологія підключення інтернету GPON та її переваги
- За що гравці найбільше цінують Lineage 2
- Для каких проектов нужна аренда виртуального сервера и что такое VPS
- Особливості MMORPG ігор (зокрема Lineage 2) та чому люди в них грають
Спасибо. Попробую применить на своих блогах.
Интересно. За важную информацию. Надо заглядывать сюда почаще.
По мне так первый способ лучше, + «прописать в HEAD для шаблона без подключения лишних файлов стилей» дабы не грузить страницу лишним
спасибо за инфу)))сейчас буду переделывать по твоей схем- надеюсь все получиться!!!
спасибо за статью, будем приментяь
спасибо большое! очень полезная статья!
особенное спасибо за : «…наличие встроенного механизма определения браузера в самом wordpress…»
Я бы только добавил такою мелочь как доступ к данным переменным.
Чтоб долго не распылятся , ежли не работает то добавте доступ к глобально переменной которую проверяете.
ну и т.п.