如果UserAgent是iPhone,则动态更改URL或WordPress主题

时间:2009-08-30 03:32:14

标签: php iphone css wordpress user-agent

有没有办法做到这一点?

我的网站是http://kennethreitz.com。它由顶级Wordpress上的一些温和PHP驱动。

我的选择是检测用户是否正在使用iphone,以及是否

a)告诉wordpress加载我写的不同“主题”。 b)如果无法做到这一点,请在使用不同主题的同一数据库中运行的子域(i.kennethreitz.com)上安装不同的wordpress。

我宁愿能够出于搜索引擎优化的原因做到A.

有什么想法吗?

5 个答案:

答案 0 :(得分:12)

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

答案 1 :(得分:3)

你看过iWPhone了吗?

这是一个Wordpress插件和主题,可以自动检测访问者是否来自iPhone并正确格式化。如果你愿意,很容易替换你自己的自定义iPhone CSS,虽然基本主题相当不错。

还有WPTouch看起来在功能上相似,但是更新一点并且具有更好的管理集成。

答案 2 :(得分:2)

这是一个Wordpress插件,可以为不同的浏览器(例如iPhone)提供不同的主题:

http://code.kuederle.com/browserbasedthemes

答案 3 :(得分:0)

我没有使用WordPress的经验,但iWPhone plugin + theme似乎可以正常工作

答案 4 :(得分:0)

开箱即用,你不能做A或B.

无法加载其他主题,因为该选项存储在wp_Options表下的数据库中。此设置是站点范围的,不是每个用户。选项B也不是一个选项,因为您将共享相同的数据库,您将为主题选择相同的值。

如果查看wp_options表,主题设置将在与“template”和“stylesheet”对应的记录中找到。