WordPress主题后台教程(十一):改进类文件

前面教程中,我们使用了一个类,然而这个类拿来学习还行,实战的时候其实很不方便。 比如不能很方便的添加多个设置页…

前面教程中,我们使用了一个类,然而这个类拿来学习还行,实战的时候其实很不方便。

比如不能很方便的添加多个设置页面,每增加一个设置选项都需要改动三个地方,每个设置选项都需要手动书写表单代码。

我想理想的类文件应该是这样的:

类的代码放在一个单独的文件中,选项的配置在类的外面配置,只需要选择类型、id、默认值即可,这样写好了类文件,在实际使用的时候只需要加载类文件,然后添加一个配置文件将类实例化即可。

下面介绍我们在接下来的教程中将为看官提供的类文件示例,选项配置文件的代码应该是这样的形式:

  1. $options[] = array(   
  2.     “name”=>“选项一”,   //选项标题
  3.     “id”=>“option1”,    //选项id
  4.     “size”=>“60”,   
  5.     “desc”=>“说明文字”,   
  6.     “type”=>“text”  //表单类型
  7. );   
  8.                
  9. $options[] = array(   
  10.     “name”=>“选项二”,   
  11.     “id”=>“option2”,   
  12.     “desc”=>“说明文字”,   
  13.     “type”=>“textarea”  
  14. );  

即通过在配置文件中以数组形式添加选项的基本信息即可。上面代码是配置详细选项的示例,我们还需要一个配置设置页面信息的代码,如下:

  1. $pageinfo = array(‘full_name’ => ‘阿树工作室主题设置’, ‘optionname’=>’general’, ‘child’=>false, ‘filename’ => basename(__FILE__));   
  2. //full_name为设置页面的title和菜单标题   
  3. //optionname为选项组的名称   
  4. //child-是否为顶级菜单   
  5. //filname 为菜单slug  

我们在将类实例化的时候将上面的配置参数传递进去即可。这样在使用的时候将会很方便很方便很方便很方便…

我们可以先思考一下我们的类的结构应该是这样:

  1. <?php   
  2. class ashu_option_pages{   
  3.     var $options;   
  4.     //…类的属性   
  5.        
  6.     //通过参数实例化类   
  7.     __construct($options,$page_info){   
  8.         //通过page_info参数信息执行创建设置页面的函数   
  9.         //执行加载js和css的函数   
  10.            
  11.     }   
  12.        
  13.     //创建设置页面函数   
  14.     function add_pages(){   
  15.         //通过optinos执行页面输出函数   
  16.     }   
  17.     //加载js css函数   
  18.     function enqueue_script(){   
  19.        
  20.     }   
  21.     //页面输出函数   
  22.     function display(){   
  23.         //分析options,执行不同表单输出代码   
  24.     }   
  25.     //保存更新数据函数   
  26.     function save_option(){   
  27.            
  28.     }   
  29.        
  30.     //各种类型表单输出函数   
  31.     function text(){}   
  32.     function textarea(){}   
  33.     function upload(){}   
  34.     //……等等   
  35.        
  36. }   
  37. ?>  

本节完,请继续参考下一篇文章。

类别:WordPress开发

本文收集自互联网,转载请注明来源。
如有侵权,请联系 wper_net@163.com 删除。

评论 (0)COMMENT

登录 账号发表你的看法,还没有账号?立即免费 注册