0°

关于Options Framework主题选项框架过滤常用标签

相信很多主题作者,在使用Options Framework主题选项框架时都遇到一个棘手的问题,就是该框架出于安全会过滤掉常用标签,最关键是过滤掉加载 javascript的常用标签,造成无法添加广告及...

相信很多主题作者,在使用Options Framework主题选项框架时都遇到一个棘手的问题,就是该框架出于安全会过滤掉常用标签,最关键是过滤掉加载 javascript的常用标签,造成无法添加广告及站点统计代码,虽然通过使用编辑器模式替代textarea文本域,可解决上述问题,但主题控制面板都是编辑器窗口看上去有些怪异。

其实官方已给出解决办法:展开

Options Framework: Sanitization Filters

  1. /*
  2. * This is an example of how to override a default filter
  3. * for ‘textarea’ sanitization and $allowedposttags + embed and script.
  4.  */
  5. add_action(‘admin_init’,’optionscheck_change_santiziation’, 100);
  6. function optionscheck_change_santiziation() {
  7.     remove_filter( ‘of_sanitize_textarea’, ‘of_sanitize_textarea’ );
  8.     add_filter( ‘of_sanitize_textarea’, ‘custom_sanitize_textarea’ );
  9. }
  10. function custom_sanitize_textarea($input) {
  11.     global $allowedposttags;
  12.     $custom_allowedtags[“embed”] = array(
  13.       “src” => array(),
  14.       “type” => array(),
  15.       “allowfullscreen” => array(),
  16.       “allowscriptaccess” => array(),
  17.       “height” => array(),
  18.           “width” => array()
  19.       );
  20.       $custom_allowedtags[“script”] = array();
  21.       $custom_allowedtags = array_merge($custom_allowedtags$allowedposttags);
  22.       $output = wp_kses( $input$custom_allowedtags);
  23.     return $output;
  24. }

不过这个实例只是不过滤<script>标签,像这种:

  1. <script type=“text/javascript” src=“zmingcx.js”></script>

还是会过滤掉type、src等标签,可能造成JS文件不能正常加载。

下面是经过我修改的完整不过滤  javascript 常用标签代码:展开

  1. /*
  2.  * This is an example of how to override a default filter
  3.  * for ‘textarea’ sanitization and $allowedposttags + embed and script.
  4.  */
  5. add_action(‘admin_init’,’optionscheck_change_santiziation’, 100);
  6. function optionscheck_change_santiziation() {
  7.     remove_filter( ‘of_sanitize_textarea’, ‘of_sanitize_textarea’ );
  8.     add_filter( ‘of_sanitize_textarea’, ‘custom_sanitize_textarea’ );
  9. }
  10. function custom_sanitize_textarea($input) {
  11.     global $allowedposttags;
  12.     $custom_allowedtags[“embed”] = array(
  13.         “src” => array(),
  14.         “type” => array(),
  15.         “allowfullscreen” => array(),
  16.         “allowscriptaccess” => array(),
  17.         “height” => array(),
  18.         “width” => array()
  19.       );
  20.     $custom_allowedtags[“script”] = array“type” => array(),“src” => array() );
  21.     $custom_allowedtags = array_merge($custom_allowedtags$allowedposttags);
  22.     $output = wp_kses( $input$custom_allowedtags);
  23.     return $output;
  24. }

该代码在Options Framework 1.91版中测试通过,其它较早版本未测试。

个人感觉默认过滤常用标签根本没这个必要,可能就是在故意难为我这样的二把刀主题作者。

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论