Динамически меняйте URL или тему WordPress, если UserAgent это iPhone

Есть какой-либо способ сделать это?

Мой сайт http://kennethreitz.com/. Его движет умеренный PHP поверх Wordpress.

Мои варианты, чтобы определить, использует ли пользователь iphone, и если они либо

а) сказать WordPress, чтобы загрузить другую "тему", которую я написал. б) если это невозможно, используйте другую установку WordPress на поддомене (i.kennethreitz.com), которая работает из той же базы данных, которая использует другую тему.

Я предпочел бы сделать A по причинам SEO.

Есть идеи?

5 ответов

Решение

http://www.nathanrice.net/blog/serve-ie6-visitors-the-default-wordpress-theme/ демонстрирует, как использовать шаблонный фильтр для динамического изменения темы WordPress (в данном случае IE6, но это может быть для мобильный пользовательский агент):

add_filter('template', 'serve_default_to_iesix');
add_filter('option_template', 'serve_default_to_iesix');
add_filter('option_stylesheet', 'serve_default_to_iesix');

function serve_default_to_iesix($theme) {
    if(strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 6') !== false)
        $theme = 'default';
    return $theme;
}

Вы смотрели на iWPhone?

Это плагин и тема Wordpress, которые автоматически определяют, пришел ли посетитель с iPhone, и соответствующим образом форматируют его. Довольно легко заменить свой собственный iPhone CSS, если вы хотите, хотя основная тема довольно приличная.

Есть также WPTouch, который выглядит похожим по функциональности, но немного новее и имеет лучшую интеграцию с администрацией.

Вот плагин Wordpress, который обслуживает разные темы для разных браузеров (например, iPhone):

http://code.kuederle.com/browserbasedthemes

У меня нет опыта работы с WordPress, но тема iWPhone plugin + выглядит так, как будто она может работать

Из коробки вы не можете сделать ни A, ни B.

Загрузка другой темы невозможна, так как эта опция хранится в базе данных под таблицей wp_Options. Этот параметр распространяется на весь сайт, а не на пользователя. Вариант B также не вариант, так как вы будете использовать ту же базу данных, что и для темы.

Если вы посмотрите в таблицу wp_options, настройка темы будет найдена в записи, которая соответствует "шаблону" и "таблице стилей".

Другие вопросы по тегам