一般刚刚接触wordpress的站长,也希望自己的网站在评论的时候,能够插入表情。使用wordpress的老手都知道,其实wordpress是自带评论表情的,而且wordpress的评论表情默认是开启的,只是一般主题文件都没有调用表情的代码,使之处于“隐藏模式”下而已。简单的增加几段代码,就可以启用wordpress自带的评论表情。
一.首先,下载smiley.php文件(点击下载),然后把此文件上传到你的主题文件夹下面。修改主题文件夹下面的comments.php,找到textarea,在上面加上:
<?php include(TEMPLATEPATH . '/smiley.php'); ?>
再去看看你的评论框,是不是已经有评论表情了呢?如果大家觉得还想继续改造,那就把表情换一下吧,换成自己喜欢的表情,如QQ表情什么的。好的,现在我们来自定义一下wordpress评论表情。首先下载一套你自己喜欢的表情,如果找不到,可以用本站所用的表情(点击下载),然后把这些表情上传到wordpress的wp-includes/images/smilies目录里面,然后再自定义一下上面所用到的smiley.php文件里面的调用名称即可。
现在刷新一下页面就已经可以看见评论表情出来了,当时我还是很高兴,以为这就成功了,但是我自己随便发了一条表情评论,居然出来的表情和我上传的表情是不一样的。
这是什么原因呢,那么这些不一样的图片有来自那里呢。我打开cpanel面板找到了自带的表情public_html/wp-includes /images/smilies,但是我发现不是这里的表情,这有点奇怪了,于是我打开按了F12审查元素,找到了原因,图片原来是来自于一个国外的网 站,
而且因为我是把FQ的打开的所以图片才能够加载出来,不然图片根本就显示不出来。
那么我添加的图片和显示出来的图片为什么会不一样呢。我百度了一下终于找到解决办法了。
1.禁用 Emoji 表情:
在主题的 functions.php 添加代码的代码即可:
/*** Disable the emoji's*/
function disable_emojis() {
remove_action( 'wp_head', 'print_emoji_detection_script', 7 );
remove_action( 'admin_print_scripts', 'print_emoji_detection_script' );
remove_action( 'wp_print_styles', 'print_emoji_styles' );
remove_action( 'admin_print_styles', 'print_emoji_styles' );
remove_filter( 'the_content_feed', 'wp_staticize_emoji' );
remove_filter( 'comment_text_rss', 'wp_staticize_emoji' );
remove_filter( 'wp_mail', 'wp_staticize_emoji_for_email' );
add_filter( 'tiny_mce_plugins', 'disable_emojis_tinymce' );
}
add_action( 'init', 'disable_emojis' );
function disable_emojis_tinymce( $plugins ) {
return array_diff( $plugins, array( 'wpemoji' ) );
}
2.恢复之前的图片表情:
在主题的 functions.php 添加代码的代码即可:
<?php
/*** WordPress 4.2 修复图片表情*/
function smilies_reset() {
global $wpsmiliestrans, $wp_smiliessearch;
// don't bother setting up smilies if they are disabled
if ( !get_option( 'use_smilies' ) )
return;
$wpsmiliestrans = array(
':mrgreen:' => 'icon_mrgreen.gif',
':neutral:' => 'icon_neutral.gif',
':twisted:' => 'icon_twisted.gif',
':arrow:' => 'icon_arrow.gif',
':shock:' => 'icon_eek.gif',
':smile:' => 'icon_smile.gif',
':???:' => 'icon_confused.gif',
':cool:' => 'icon_cool.gif',
':evil:' => 'icon_evil.gif',
':grin:' => 'icon_biggrin.gif',
':idea:' => 'icon_idea.gif',
':oops:' => 'icon_redface.gif',
':razz:' => 'icon_razz.gif',
':roll:' => 'icon_rolleyes.gif',
':wink:' => 'icon_wink.gif',
':cry:' => 'icon_cry.gif',
':eek:' => 'icon_surprised.gif',
':lol:' => 'icon_lol.gif',
':mad:' => 'icon_mad.gif',
':sad:' => 'icon_sad.gif',
'8-)' => 'icon_cool.gif',
'8-O' => 'icon_eek.gif',
':-(' => 'icon_sad.gif',
':-)' => 'icon_smile.gif',
':-?' => 'icon_confused.gif',
':-D' => 'icon_biggrin.gif',
':-P' => 'icon_razz.gif',
':-o' => 'icon_surprised.gif',
':-x' => 'icon_mad.gif',
':-|' => 'icon_neutral.gif',
';-)' => 'icon_wink.gif',
// This one transformation breaks regular text with frequency.
// '8)' => 'icon_cool.gif',
'8O' => 'icon_eek.gif',
':(' => 'icon_sad.gif',
':)' => 'icon_smile.gif',
':?' => 'icon_confused.gif',
':D' => 'icon_biggrin.gif',
':P' => 'icon_razz.gif',
':o' => 'icon_surprised.gif',
':x' => 'icon_mad.gif',
':|' => 'icon_neutral.gif',
';)' => 'icon_wink.gif',
':!:' => 'icon_exclaim.gif',
':?:' => 'icon_question.gif',
);
}
smilies_reset();
这两个步骤一个都不能少,添加后我们再次刷新一下页面,发现原来不一样的表情没有了,上面和下面的表情都变成了我自己添加的表情。我想这里的原理应该是一个优先级的问题,就是WordPress自带评论表情的优先级高于我们自定义的评论表情,所以才会出现这种情况
如果你还想给表情添加上提示文字,就打开smiley.php文件修改一下。
修改后保存即可。因为他的图片名字和表情其实是不一样的,所以这里我就没有添加提示信息。
最后,如果想保留自定义的表情不会因为wordpress的更新而自动替换成系统默认的,清一定加下下面这段代码,自定义的表情的路径。
//自定义表情路径
function custom_smilies_src( $src, $img ) {
return get_bloginfo( 'template_directory' ) . '/smilies/' . $img;
}
add_filter( 'smilies_src', 'custom_smilies_src', 10, 2 );
好了,自定义表情更改就到此结束了,希望对你有所帮助.....
😈 😈
@prolicn 这个文章必须顶。。
@跨境卖家导航 🙂 🙂 🙂
😐 😐
🙁 🙁 🙁
这表情感觉有点小了,哪天有空在找一套...... ❗ ❗ ❗ ❗ ❗