相信很多主题作者,在使用Options Framework主题选项框架时都遇到一个棘手的问题,就是该框架出于安全会过滤掉常用标签,最关键是过滤掉加载 javascript的常用标签,造成无法添加广告及站点统计代码,虽然通过使用编辑器模式替代textarea文本域,可解决上述问题,但主题控制面板都是编辑器窗口看上去有些怪异。
其实官方已给出解决办法:
展开收缩
Options Framework: Sanitization Filters
- /*
- * This is an example of how to override a default filter
- * for 'textarea' sanitization and $allowedposttags + embed and script.
- */
- add_action('admin_init','optionscheck_change_santiziation', 100);
- function optionscheck_change_santiziation() {
- remove_filter( 'of_sanitize_textarea', 'of_sanitize_textarea' );
- add_filter( 'of_sanitize_textarea', 'custom_sanitize_textarea' );
- }
- function custom_sanitize_textarea($input) {
- global $allowedposttags;
- $custom_allowedtags["embed"] = array(
- "src" => array(),
- "type" => array(),
- "allowfullscreen" => array(),
- "allowscriptaccess" => array(),
- "height" => array(),
- "width" => array()
- );
- $custom_allowedtags["script"] = array();
- $custom_allowedtags = array_merge($custom_allowedtags, $allowedposttags);
- $output = wp_kses( $input, $custom_allowedtags);
- return $output;
- }
不过这个实例只是不过滤<script>标签,像这种:
- <script type="text/javascript" src="zmingcx.js"></script>
还是会过滤掉type、src等标签,可能造成JS文件不能正常加载。
下面是经过我修改的完整不过滤 javascript 常用标签代码:
展开收缩
- /*
- * This is an example of how to override a default filter
- * for 'textarea' sanitization and $allowedposttags + embed and script.
- */
- add_action('admin_init','optionscheck_change_santiziation', 100);
- function optionscheck_change_santiziation() {
- remove_filter( 'of_sanitize_textarea', 'of_sanitize_textarea' );
- add_filter( 'of_sanitize_textarea', 'custom_sanitize_textarea' );
- }
- function custom_sanitize_textarea($input) {
- global $allowedposttags;
- $custom_allowedtags["embed"] = array(
- "src" => array(),
- "type" => array(),
- "allowfullscreen" => array(),
- "allowscriptaccess" => array(),
- "height" => array(),
- "width" => array()
- );
- $custom_allowedtags["script"] = array( "type" => array(),"src" => array() );
- $custom_allowedtags = array_merge($custom_allowedtags, $allowedposttags);
- $output = wp_kses( $input, $custom_allowedtags);
- return $output;
- }
该代码在Options Framework 1.91版中测试通过,其它较早版本未测试。
本站文章大部分为原创,用于个人学习记录,可能对您有所帮助,仅供参考!
我的微信
微信号已复制
版权声明
本站原创文章转载请注明文章出处及链接,谢谢合作!
广东省东莞市 1F
学习了
云南省昆明市 2F
好久没折腾主题了。折腾起来太费时间和精力了。
安徽省亳州市蒙城县 3F
学习了,不过折腾主题太费时间精力,尤其对于我这种半吊子加懒人!所以等鸟哥主题出来给我留个位,最近太忙可能没时间关注!最后那些扒皮的盗版的如果可以手下留情就好了
北京市 B1
@ openeto 哈哈加密了
安徽省 B2
@ 育儿网 加密这个也不是很管用的!话说这评论有问题,会保留用户名!下面回复竟然是‘‘我’’
安徽省 B2
@ 育儿网 加密也不是很管用的,话说这评论保存用户名,下楼评论还是‘’我‘’
浙江省宁波市 4F
不知道是用什么加密的,如果是zend optimizer我还得去调整下服务器环境。。。。
湖北省荆州市 B1
@ 天若随刊 基本上目前主流的还是zend加密,一般的虚拟主机估计比较麻烦,不过vps就可以自己配置了。
辽宁省沈阳市 5F
真好
广东省广州市 6F
正文开始的图片广告路径错了吧?图裂了~
湖北省武汉市 7F
啊啊啊
山东省济南市 8F
大神,请问上面的代码怎么用?要放到哪里呢?刚开始用这个框架,不是很懂。
中国 B1
@ 暗淡的黑 可以放到框架options-framework.php文件中
北京市 9F
ality主题不更新了?