Dynamically change url or WordPress theme if UserA

2019-05-18 08:52发布

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?

5条回答
Lonely孤独者°
2楼-- · 2019-05-18 09:32

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.

查看更多
淡お忘
3楼-- · 2019-05-18 09:32

Here is a Wordpress plugin which serves different themes to different browsers (e.g. iPhone):

http://code.kuederle.com/browserbasedthemes

查看更多
\"骚年 ilove
4楼-- · 2019-05-18 09:36

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".

查看更多
狗以群分
5楼-- · 2019-05-18 09:43

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;
}
查看更多
虎瘦雄心在
6楼-- · 2019-05-18 09:46

I don't have experience with WordPress, but the iWPhone plugin + theme looks like it might work

查看更多
登录 后发表回答