当前位置:首页 > CMS教程 > WordPress > 列表

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

发布:smiling 来源: PHP粉丝网  添加日期:2015-10-16 14:41:34 浏览: 评论:0 

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

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

Tags: WordPress评论 WordPress表情

分享到: