Нещодавно при роботі над моїм новим блогом про 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 для шаблону без підключення зайвих файлів стилів.
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 сама відмінно впоралася з визначенням браузера і потрібна задача була вирішена. Ось так ось іноді система приємно дивує.
PS Постовий. Одна з кращих настільних ігор - грошовий потік - гра економічної бізнес тематики.
Пошукова контекстна реклама - ефективний метод просування сайтів.
Lt; / a> '; }?
Php if ($ is_IE) {?
Gt; <Div class = "fullpost"> <a href=" <?
Php the_permalink () ?
Gt; "> Читати далі» </a> </ div> <?
Php}?
Php if ($ is_IE) {?
Gt; <Div class = "fullpost"> <a href="<?
Php the_permalink() ?