Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamically change url or WordPress theme if UserAgent is iPhone

Is there any way to do this?

My website is http://kennethreitz.com. Its driven by some moderate PHP on top Wordpress.

My options are to detect if the user is using an iphone, and if they are either

a) tell wordpress to load a different "theme" that i have written. b) if this isn't possible, have a different wordpress installation on a subdomain (i.kennethreitz.com) that operates out of the same database, that uses a different theme.

I'd rather be able to do A for SEO reasons.

Any ideas?

like image 491
Kenneth Reitz Avatar asked Nov 25 '25 23:11

Kenneth Reitz


2 Answers

http://www.nathanrice.net/blog/serve-ie6-visitors-the-default-wordpress-theme/ demonstrates how to use template filter to dynamically change the WordPress theme (in this case IE6, but it could be for a mobile user agent):

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;
}
like image 102
bob Avatar answered Nov 28 '25 12:11

bob


Have you looked at iWPhone?

It's a Wordpress plugin and theme that automatically takes care of detecting whether the visitor is from an iPhone and formats things appropriately. Pretty easy to substitute your own custom iPhone CSS if you want, although the basic theme is pretty decent.

There's also WPTouch which looks to be similar in functionality but is a bit more recent and has better administration integration.

like image 38
Ramin Avatar answered Nov 28 '25 13:11

Ramin