Wordpress:如何为移动用户显示不同的主题

时间:2012-12-12 13:17:42

标签: php wordpress mobile-website

我想为手机特别是iPhone和Android访客展示不同的主题。 是的WPtouch插件是一个很好的解决方案,但我想展示全新的jquery mobile基于移动设备的主题。

在移动设备上检测到用户后,如何为用户显示移动主题?

2 个答案:

答案 0 :(得分:1)

首先,你需要创建一个WordPress插件,因为在functions.php中实现主题切换的逻辑为时已晚,因为只有在相应的主题确实已经应用时才会被调用!因此,您需要在插件中插入逻辑(插件文件在主题文件之前执行),然后使用以下过滤器,将检测逻辑放在相应的函数中(get_template_for_deviceget_stylesheet_for_device):

    add_filter('template', 'get_template_for_device');
    add_filter('stylesheet', 'get_stylesheet_for_device');
    add_filter('option_template', 'get_template_for_device');
    add_filter('option_stylesheet', 'get_stylesheet_for_device');

Personnaly,我已经实现了一个WURFL解决方案来检测服务器端的设备具有相当好的安全性,因为检测用户代理字符串中的字符串的简单方法不是最可靠的(我还需要额外的设备功能信息,只有WURFL可以提供)。我的解决方案是:如果我设置的deviceinfo cookie中没有存储数据,我执行WURFL进行设备检测,将所有信息存储在cookie中。在随后的访问或后续页面中,我直接从cookie中获取信息并使用上述过滤器提供正确的主题,而无需实例化WURFL对象。 否则,您可以使用更简单的逻辑来读取用户代理字符串(就像WPTouch所做的那样):它不太可靠,但说实话,它的工作时间超过90%(根据我自己的经验,但我可以如果你必须考虑某些地理区域,那就错了,所以这就足够了。 GBD在他的评论中给了你一个例子。

答案 1 :(得分:0)

这个插件似乎很适合这个任务 http://wordpress.org/extend/plugins/any-mobile-theme-switcher/