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

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

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

Options Framework: Sanitization Filters

  1. add_action(\’admin_init\’,\’optionscheck_change_santiziation\’, 100);
  2.  optionscheck_change_santiziation() {
  3.     remove_filter( \’of_sanitize_textarea\’, \’of_sanitize_textarea\’ );
  4.     add_filter( \’of_sanitize_textarea\’, \’custom_sanitize_textarea\’ );
  5. }
  6.  custom_sanitize_textarea() {
  7.      ;
  8.     [] = (
  9.        => (),
  10.        => (),
  11.        => (),
  12.        => (),
  13.        => (),
  14.            => ()
  15.       );
  16.       [] = ();
  17.        = (, );
  18.        = wp_kses( , );
  19.      ;
  20. }

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

  1. <script type= src=></script>

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

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

  1. add_action(\’admin_init\’,\’optionscheck_change_santiziation\’, 100);
  2.  optionscheck_change_santiziation() {
  3.     remove_filter( \’of_sanitize_textarea\’, \’of_sanitize_textarea\’ );
  4.     add_filter( \’of_sanitize_textarea\’, \’custom_sanitize_textarea\’ );
  5. }
  6.  custom_sanitize_textarea() {
  7.      ;
  8.     [] = (
  9.          => (),
  10.          => (),
  11.          => (),
  12.          => (),
  13.          => (),
  14.          => ()
  15.       );
  16.     [] = (  => (), => () );
  17.      = (, );
  18.      = wp_kses( , );
  19.      ;
  20. }

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

    © 版权声明
    THE END
    喜欢就支持一下吧
    点赞0 分享
    评论 抢沙发

    请登录后发表评论

      暂无评论内容