用WP-Cirrus实现的3D标签云在Chrome下效果很不错,但是在IE浏览器下却是惨不忍睹,主要是因为老版的IE浏览器不支持这些属性。毕竟并非所有访客都用Chrome,所以只好想想办法解决WP-Cirrus在IE浏览器下的显示,当然,以我这样的水平要改核心代码让3D效果在IE下显示正常是十分遥远的,所以路线决定为在IE浏览器下面不显示3D效果,改为显示正常的普通的标签云。于是,首先我们要知道怎样确认访客的浏览器。
具体的修改代码如下:
PHP语言:
//正值表达式比对解析$_SERVER['HTTP_USER_AGENT']中的字符串 获取访问用户的浏览器的信息
//判断如果浏览器是IE就返回true
function determinebrowser ($Agent) {
if (ereg('MSIE ([0-9].[0-9]{1,2})',$Agent,$version)) {
return true;
}
else {
return false;
}
}
传入$_SERVER['HTTP_USER_AGENT']给函数determinebrowser,函数正则表达式判断浏览器是否IE浏览器,如果是就返回true,不是就返回false
函数有了,我们现在要修改WP-Cirrus插件的代码,找到下面的代码
PHP语言:
function wpcirrusWidgetInit($args){
extract($args);
$options = get_option('wpcirrus-widget');
echo $before_widget . $before_title . $options['title'] . $after_title;
wpcirrusInit(false, $args);
echo $after_widget;
}
这是控制widget在前台显示的代码,我们只需要增加相应的条件判断
PHP语言:
function wpcirrusWidgetInit($args){
extract($args);
$options = get_option('wpcirrus-widget');
echo $before_widget . $before_title . $options['title'] . $after_title;
//判断是否IE浏览器
if (!determinebrowser($_SERVER['HTTP_USER_AGENT'])){
wpcirrusInit(false, $args);
}
else{//是IE浏览器,显示普通的标签云
echo '';
wp_tag_cloud( );
echo "
\n";
}
echo $after_widget;
}
这样,如果访客用的是IE浏览器访问,WP-Cirrus就只会显示普通的标签云了
很简单,也没什么技术含量,虽然不是完美的解决方案,凑合着用吧
其实我觉得普通的标签云增加彩色比3D标签云更好看。
via:
TeRRY标签:IE相关IE浏览器wordpress