首页 > CMS > Wordpress > 正文

WordPress 4.2 评论表情失效解决方法

2024-09-07 00:52:19
字体:
来源:转载
供稿:网友

WordPress更新至4.2版本后调整了某些函数,听到最多的疑问便是评论表情都失效了,其实也不是啥太大的问题,只不过Wordpress更新至4.2以后评论表情函数名进行了变更而已,才导致了很多博客的表情全部都是叉叉,其实解决方法有很多种,今天,珞凡在这里介绍一种简单的方法帮助大家解决评论表情失效的问题.

将以下代码直接丢进主题functions.php即可:

  1. /** 
  2. * Disable the emoji's 
  3. */ 
  4. function disable_emojis() { 
  5. remove_action( 'wp_head''print_emoji_detection_script', 7 ); 
  6. remove_action( 'admin_print_scripts''print_emoji_detection_script' ); 
  7. remove_action( 'wp_print_styles''print_emoji_styles' ); 
  8. remove_action( 'admin_print_styles''print_emoji_styles' ); 
  9. remove_filter( 'the_content_feed''wp_staticize_emoji' ); 
  10. remove_filter( 'comment_text_rss''wp_staticize_emoji' ); 
  11. remove_filter( 'wp_mail''wp_staticize_emoji_for_email' ); 
  12. add_filter( 'tiny_mce_plugins''disable_emojis_tinymce' ); 
  13. add_action( 'init''disable_emojis' ); 
  14. /** 
  15. * Filter function used to remove the tinymce emoji plugin. 
  16. * 
  17. * @param array $plugins 
  18. * @return array Difference betwen the two arrays 
  19. */ 
  20. function disable_emojis_tinymce( $plugins ) { 
  21. return array_diff$pluginsarray'wpemoji' ) ); 
  22. function smilies_reset() { 
  23. global $wpsmiliestrans
  24. // don't bother setting up smilies if they are disabled 
  25. if ( !get_option( 'use_smilies' ) ) 
  26. return
  27. $wpsmiliestrans = array
  28. ':mrgreen:' => 'icon_mrgreen.gif'
  29. ':neutral:' => 'icon_neutral.gif'
  30. ':twisted:' => 'icon_twisted.gif'
  31. ':arrow:' => 'icon_arrow.gif'
  32. ':shock:' => 'icon_eek.gif'
  33. ':smile:' => 'icon_smile.gif'
  34. ':???:' => 'icon_confused.gif'
  35. ':cool:' => 'icon_cool.gif'
  36. ':evil:' => 'icon_evil.gif'
  37. ':grin:' => 'icon_biggrin.gif'
  38. ':idea:' => 'icon_idea.gif'
  39. ':oops:' => 'icon_redface.gif'
  40. ':razz:' => 'icon_razz.gif'
  41. ':roll:' => 'icon_rolleyes.gif'
  42. ':wink:' => 'icon_wink.gif'
  43. ':cry:' => 'icon_cry.gif'
  44. ':eek:' => 'icon_surprised.gif'
  45. ':lol:' => 'icon_lol.gif'
  46. ':mad:' => 'icon_mad.gif'
  47. ':sad:' => 'icon_sad.gif'
  48. '8-)' => 'icon_cool.gif'
  49. '8-O' => 'icon_eek.gif'
  50. ':-(' => 'icon_sad.gif'
  51. ':-)' => 'icon_smile.gif'
  52. ':-?' => 'icon_confused.gif'
  53. ':-D' => 'icon_biggrin.gif'
  54. ':-P' => 'icon_razz.gif'
  55. ':-o' => 'icon_surprised.gif'
  56. ':-x' => 'icon_mad.gif'
  57. ':-|' => 'icon_neutral.gif'
  58. ';-)' => 'icon_wink.gif'
  59. // This one transformation breaks regular text with frequency. 
  60. // '8)' => 'icon_cool.gif', 
  61. '8O' => 'icon_eek.gif'
  62. ':(' => 'icon_sad.gif'
  63. ':)' => 'icon_smile.gif'
  64. ':?' => 'icon_confused.gif'
  65. ':D' => 'icon_biggrin.gif'
  66. ':P' => 'icon_razz.gif'
  67. ':o' => 'icon_surprised.gif'
  68. ':x' => 'icon_mad.gif'
  69. ':|' => 'icon_neutral.gif'
  70. ';)' => 'icon_wink.gif'
  71. ':!:' => 'icon_exclaim.gif'
  72. ':?:' => 'icon_question.gif'
  73. ); //Vevb.com 
  74. smilies_reset(); 

最后,想补充的是,Wordpress 4.2修改了translate_smiley函数,使得输出的表情带样式(style),具体为style="height: 1em; max-height: 1em;",这可能会对我们的表情产生影响(我的是被压扁了),因为这个函数本身没有过滤器,所以无法添加过滤,对输出再解码也影响性能,只能修改源文件,来达到目的,具体位置在/wp-includes/formatting.php的第2114行,如下:

  1. return sprintf( '<img src="%s" alt="%s" class="wp-smiley" style="height: 1em; max-height: 1em;" />', esc_url( $src_url ), esc_attr( $smiley ) ); 
  2. //修改为: 
  3. return sprintf( '<img src="%s" alt="%s" class="wp-smiley" />', esc_url( $src_url ), esc_attr( $smiley ) ); 

其实就是删除这个样式,这样就不会对我们现有的表情产生任何影响了.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表