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

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.00 (0%) - 0 个投票
查看 评论
  1. 最好一个 的最后一句少了个符号 ;

    9年前 回复
发表评论