相信很多主题作者,在使用Options Framework主题选项框架时都遇到一个棘手的问题,就是该框架出于安全会过滤掉常用标签,最关键是过滤掉加载 javascript的常用标签,造成无法添加广告及站点统计代码,虽然通过使用编辑器模式替代textarea文本域,可解决上述问题,但主题控制面板都是编辑器窗口看上去有些怪异。
其实官方已给出解决办法:
Options Framework: Sanitization Filters
- add_action(\’admin_init\’,\’optionscheck_change_santiziation\’, 100);
- optionscheck_change_santiziation() {
- remove_filter( \’of_sanitize_textarea\’, \’of_sanitize_textarea\’ );
- add_filter( \’of_sanitize_textarea\’, \’custom_sanitize_textarea\’ );
- }
- custom_sanitize_textarea() {
- ;
- [] = (
- => (),
- => (),
- => (),
- => (),
- => (),
- => ()
- );
- [] = ();
- = (, );
- = wp_kses( , );
- ;
- }
不过这个实例只是不过滤<script>标签,像这种:
- <script type= src=></script>
还是会过滤掉type、src等标签,可能造成JS文件不能正常加载。
下面是经过我修改的完整不过滤 javascript 常用标签代码:
- add_action(\’admin_init\’,\’optionscheck_change_santiziation\’, 100);
- optionscheck_change_santiziation() {
- remove_filter( \’of_sanitize_textarea\’, \’of_sanitize_textarea\’ );
- add_filter( \’of_sanitize_textarea\’, \’custom_sanitize_textarea\’ );
- }
- custom_sanitize_textarea() {
- ;
- [] = (
- => (),
- => (),
- => (),
- => (),
- => (),
- => ()
- );
- [] = ( => (), => () );
- = (, );
- = wp_kses( , );
- ;
- }
该代码在Options Framework 1.91版中测试通过,其它较早版本未测试。
暂无评论内容