简体   繁体   中英

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?

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

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.

Here is a Wordpress plugin which serves different themes to different browsers (eg iPhone):

http://code.kuederle.com/browserbasedthemes

我没有使用WordPress的经验,但iWPhone插件+主题看起来可能有效

Out of the box you cannot do either A or B.

Loading a different theme is not possible as that option is stored in the database under the wp_Options table. This setting is site wide not per user. Option B is not an option either since you would be sharing the same database you would be selecting the same value for the theme.

If you look in the wp_options table the theme setting will be found in the record that corresponds to "template" and "stylesheet".

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM