Option Framework 框架的三个自定义技巧

陆陆续续将解密一些本站几个收费主题的核心功能,分享才会更好。虽然鄙人技术不称得上牛逼,好在足够专注也能学点。Option Framework 框架免费开源,采用GPL(意味着你可以用于收费项目中),用来开发主题中是再好不过的东西了。

关于Option Framework 框架,如果你之前没有了解过的,不妨通过下面这篇文章了解《5 款前沿的WordPress主题后台选项开发框架推荐》。很欣慰看到国内的WP开发者越来越多用上了这个框架而非像前几年那样抄来抄去某个代码段。本文例子所用的Option Framework 版本为最新版(写作本文时候为1.9)

自定义一:自定义设置函数名称

默认的话,Option Framework 的设置调用函数名称为 of_get_option(),如果你想自定义为其他,需要对源代码本身修改了——打开options-framework.php 这个文件,定位到最后一个定义函数的地方,将of_get_option 改为你需要的,比如:

if ( ! function_exists( 'mindia_option' ) ) : function mindia_option( $name, $default = false ) { $config = get_option( 'optionsframework' );   if ( ! isset( $config['id'] ) ) { return $default; }   $options = get_option( $config['id'] );   if ( isset( $options[$name] ) ) { return $options[$name]; }   return $default; }

就可以实现函数名称为mindia_option

自定义二:自定义设置页面标题、别名

默认的话,地址栏里面的设置页面别名(URL)类似于wp-admin/themes.php?page=options-framework。如果你控制欲犯了,想设置为其他,那么可以用下面的代码实现之:

function prefix_options_menu_filter( $menu ) { $menu['mode'] = 'menu'; $menu['page_title'] = 'Mindia 主题设置'; $menu['menu_title'] = 'Mindia 主题设置'; $menu['menu_slug'] = 'mindia-options'; return $menu; } add_filter( 'optionsframework_menu', 'prefix_options_menu_filter' );

自定义三:让主题设置的文本内容允许javascript代码

不知道从哪个版本开始,为了安全,Option Framework 框架默认的话会过滤掉js代码,因此如果你需要在设置里面做设置的话可能会遇到直接输出js代码的问题,解决这个的话jeff 目前使用这个方法:即在输出前自动添加javascript 标签,然后在设置页面要求用户不用输入javascript 标签。这样算是比较好的解决了这个问题。

function mindia_footer_code(){ echo "<script type='text/javascript'>"."\n" ; echo mindia_option('md_customjs'); echo mindia_option('md_tongji'); echo "</script>"."\n"; } add_filter("wp_footer", "mindia_footer_code",100)

以上演示代码均来自于开发的Mindia 主题中。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏编程微刊

利用PS把多张psd格式的图片转换为一张PDF格式

3.1K2
来自专栏全华班

分享一套别人开发的网站管理后台系统

该项目的架构搭建使用的是maven,后台是使用的是ssm框架,权限管理使用的是shiro框架,前端使用的框架是layui,流程使用的activiti框架,集成了...

4872
来自专栏蘑菇先生的技术笔记

Windows10自适应和交互式toast通知[1]

创建灵活的toast通知,包括内嵌图片及更多的内容,不在局限于之前Windows 8.1和Windows Phone 8.1提供的toast模板。

1346
来自专栏java一日一条

一个简单粗暴的前后端分离方案

刚刚参加完一个项目,背景:后端是用java,后端服务已经开发的差不多了,现在要通过web的方式对外提供服务,也就是B/S架构。后端专注做业务逻辑,不想...

2251
来自专栏听雨堂

PowerPoint发布及链接图片的处理

        用PPT做了一个纯播放类的课件,希望发布到CD上,首先想到的是打包,找到一个PowerPoint Slide Show Converter的程序...

1958
来自专栏Java帮帮-微信公众号-技术文章全总结

简单到没朋友,微信小程序开发实录【面试+工作】

在准备微信小程序开发之前,希望你已经在微信·公众平台 https://mp.weixin.qq.com/注册了小程序。微信小程序账号注册入口 https://...

1.8K5
来自专栏yang0range

React Native在Android当中实践(五)——常见问题

这个问题是由于ReactNative兼容64位Android手机导致的。 解决办法: 1.在项目的根目录的 gradle.properties 里面添加一行...

1262
来自专栏Crossin的编程教室

爬虫必备工具,掌握它就解决了一半的问题

网上爬虫的教程实在太多了,去知乎上搜一下,估计能找到不下一百篇。大家乐此不疲地从互联网上抓取着一个又一个网站。但只要对方网站一更新,很可能文章里的方法就不再有效...

1582
来自专栏Fundebug

Vue UI:Vue开发者必不可少的工具

随着最新的稳定版本Vue CLI 3即将发布,是时候来看看有什么新鲜有趣的特性了。基于整个Vue.js开发者社区的反馈而大幅度改良,该版本提供了很多以工作流为中...

2245
来自专栏前端儿

安卓微信页面的调试

在开发安卓微信页面时,刚开始一般是会在PC上进行,等到开发后期的自测阶段再转到安卓模拟器上、转到各种真机上自测,上线了如果出问题还需要在真机上调试测试。

8402

扫码关注云+社区

领取腾讯云代金券