我想为移动设备,特别是iphone和android访客展示一个不同的主题。是的,WPtouch
插件在很好的解决方案中,但我想展示全新的基于jquery mobile
的移动主题。
在手机中检测到手机主题后,如何向用户显示手机主题?
首先,您需要创建一个WordPress插件,因为在functions.php中实现主题切换的逻辑为时已晚,因为它只有在相应的主题确实已经应用时才会被调用!因此,您需要在插件中插入您的逻辑(插件文件在主题文件之前执行),然后使用以下过滤器,将您的检测逻辑放置在相应的函数(get_template_for_device
和get_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');
个人而言,我已经实现了一个WURFL解决方案来检测服务器端的设备,具有相当好的安全性,因为检测用户代理字符串内部的字符串的简单方法不是最可靠的(我还需要额外的设备功能信息,只有WURFL才能提供)。我的解决方案是:如果我设置的设备信息cookie中没有存储任何数据,我会执行WURFL进行设备检测,将所有信息存储在cookie中。在随后的访问或后续页面上,我直接从cookie中获取信息,并使用上述过滤器提供适当的主题,而无需安装WURFL对象。否则,你可以使用一个更简单的逻辑来读取用户代理字符串(就像WPTouch所做的那样):它不太可靠,但老实说,它90%以上都有效(根据我自己的经验,但我可能错了,尤其是如果你必须考虑某些地理区域的话),所以它就足够了。GBD只是在他的评论中给了你一个例子。
这个插件似乎很适合这个任务http://wordpress.org/extend/plugins/any-mobile-theme-switcher/