一对一免费咨询: 13913005726 025-66045668

用CSS Sprites将WordPress表情图片合并为一个文件这个想法其实我很早就有了,我已经在别的网站上见到这样的应用了(比如人间网就用了这个技术)。

那么这个方法有什么好处呢?

我想这个方法最大的好处就是大大减少了HTTP Request数量(要知道一般博客上面如果有表情的话,那么表情图片的数量少则有7、8个,多则可达20+,像我之前就用了24个)以及图片的大小(以前我24个GIF图是36K+,现在则只有一个大小为4.74KB的xiaonei.png),这对于大流量的网站的好处是显而易见的。

当然缺点呢也很明显,图片成静态的了(其实也可以做成动态的,但是比较麻烦,而且文件也会比较大),朋友们会觉得比较死板,没有以前那么生动了。我个人感觉其实还可以,要知道很多网站是没有表情的,呵呵。

好了,下面Zenoven先说说WordPress实现表情符号到图片的原理。

常州网站建设公司

1、WordPress后台首先要启用表情转换(在WP后台》设置》撰写选项》格式化 将 转换如 :-) 和 :-P 的文字表情符号为图像选中)

2、当用户发布评论后,WP根据 网站根目录/wp-includes/functions.php中smilies_init() 的定义,将表情符号转换为对应的文件名。

3、接着在评论显示的时候,WP根据 网站根目录/wp-includes/formatting.php 中translate_smiley($smiley) 的定义,输出一个 img标签,显示对应的表情。

也就是说从你输入表情对应的符号(或是点击表情)到显示图片经历了这么一个过程

表情符号表情文件名IMG标签

原理知道了,那么实现我想要的功能就很简单了。思路如下。

首先转换表情符号为文件名这一块,我让他转换成表情的ID,然后生成img标签呢,我又修改为生成一个a标签,然后利用表情的ID,给每一个生成的a标签设置CSS样式(最主要的就是background-position的应用了)

下面是我实现的具体步骤。

1、修改 网站根目录/wp-includes/functions.php中smilies_init() 的定义。下面是我修改后的smilies_init()中if ( !isset( $wpsmiliestrans ) )部分。

if ( !isset( 上海徐汇区网站建设公司 $wpsmiliestrans ) ) {

$wpsmiliestrans = array(

‘:(1):’ = ‘xiaone_1′,

‘:(2):’ = ‘xiaonei_2′,

‘:(3):’ = ‘xiaonei_3′,

‘:(4):’ = ‘xiaonei_4′,

‘:(5):’ = ‘xiaonei_5′,

‘:(6):’ = ‘xiaonei_6′,

‘:(7):’ = ‘xiaonei_7′,

‘:(8):’ = ‘xiaonei_8′,

‘:(9):’ = ‘xiaonei_9′,

‘:(10):’ = ‘xiaonei_10′,

‘:(11):’ = ‘xiaonei_11′,

‘:(12):’ = ‘xiaonei_12′,

‘:(13):’ = ‘xiaonei_13′,

‘:(14):’ = ‘xiaonei_14′,

‘:(15):’ = ‘xiaonei_15′,

‘:(16):’ = ‘xiaonei_16′,

‘:(17):’ = ‘xiaonei_17′,

‘:(18):’ = ‘xiaonei_18′,

‘:(19):’ = ‘xiaonei_19′,

‘:(20):’ = ‘xiaonei_20′,

‘:(21):’ = ‘xiaonei_21′,

‘:(22):’ = ‘xiaonei_22′,

‘:(23):’ = ‘xiaonei_23′,

‘:(24):’ = ‘xiaonei_24′,

);

}

2、修改 网站根目录/wp-includes/formatting.php 公司企业品牌网站建设 中 function translate_smiley($smiley) 的定义。下面是我修改后的function translate_smiley($smiley) 的代码段。

function translate_smiley($smiley) {

global $wpsmiliestrans;

if (count($smiley) == 0) {

return ;

}

$siteurl = get_option( ’siteurl’ );

$smiley = trim(reset($smiley));

$img = $wpsmiliestrans[$smiley];

$smiley_masked = esc_attr($smiley);

return a class=’wp-smiley $img’ /a ;

}

3、在评论文本框附近的表情显示(就是你能看到的点击一个表情就会在文本框输入对应的符号),由于我没有用WP表情插件,用的是老万他们用的smiley.php这个文件,所以接下来做的就是修改smiley.php了(由于这里贴代码没有太大意义,所以在文章最后所有修改后的文件一并给出)

4、设计CSS样式。(代码略)

修改后的各个文件及详细使用说明 下载1(115网盘) 下载2(xun6)

非特别说明,均为本站原创文章 转载请注明:原文摘自Zenoven自由人

本文链接地址:http://www.zenoven.com/technology/css/2010051307.html


 


 南京牧狼文化传媒有限公司简介:


      牧狼传媒,牧者之心,狼者之性,以牧之谦卑宽容之心待人,以狼之团结无畏之性做事!


  公司注册资金100万,主营众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放以及电商营销推广全案等相关业务,致力于为客户提供更有价值的服务,创造让用户满意的效果!


  为百度官方及其大客户、苏宁易购、金山WPS秀堂、美的、创维家电、新东方在线、伊莱克斯、宝丽莱等国内国外知名品牌服务过,服务经验丰富!同时,公司也是南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位,可以为您提供更好的服务!


  主营项目:众筹全案服务、网站营销全案服务、网站建设、微信小程序开发、电商网店设计、H5页面设计、腾讯社交广告投放、竞价托管、网站优化、电商代运营等


  合作客户:百度、苏宁易购、饿了么、美的、创维家电、新东方在线、宝丽莱、金山WPS秀堂、伊莱克斯


  资质荣誉:百度商业服务市场2017年度最佳图片服务商、南京电子商务协会会员单位、猪八戒网官方认证签约服务商、江苏八戒服务网联盟、南京浦口文化产业联合会会员单位、八戒通TOP服务商、"易拍即合杯"H5创意大赛"三等奖"。



致力于为客户创造更多价值
13913005726 025-66045668
需求提交
电话咨询
在线咨询