wordpress后台制作教程(七):使用类
面向对象编程是现在编程语言中很重要的方法,很多程序语言都支持面向对象的编程方法,至于面向对象的概念、特点什么的,就不多说了,我们的后台设置选项如果设置数据非常多,按照前面的方法,需要些很多代码,当然你也可以使用各种自定义函数来简化代码,现在我们使用类来添加设置选项,在配置和修改的时候也非常简单。
我们先看一个简单一点的类(参考自NEOEASE):
第一步,新建php文件(我还是使用前面教程中新建的myfunctions.php文件),我用默认主题Twenty Ten来测试,首先在这个主题的文件夹下新建一个文件-myfunctions.php 然后打开functions.php文件在最底部添加下面的代码载入我们新建的这个文件:
- (‘myfunctions.php’);
类的代码如下:
- <?php
- //类ClassicOptions
- ClassicOptions {
- /* — getOptions函数获取选项组 — */
- getOptions() {
- // 在数据库中获取选项组
- $options = get_option(‘classic_options’);
- // 如果数据库中不存在该选项组, 设定这些选项的默认值, 并将它们插入数据库
- (!is_array($options)) {
- //初始默认数据
- $options[‘ashu_copy_right’] = ‘wp自学笔记’;
- //这里可添加更多设置选项
- update_option(‘classic_options’, $options);
- }
- // 返回选项组
- $options;
- }
- /* — init函数 初始化 — */
- init() {
- // 如果是 POST 提交数据, 对数据进行限制, 并更新到数据库
- (isset($_POST[‘classic_save’])) {
- // 获取选项组, 因为有可能只修改部分选项, 所以先整个拿下来再进行更改
- $options = ClassicOptions::getOptions();
- // 数据处理
- $options[‘ashu_copy_right’] = stripslashes($_POST[‘ashu_copy_right’]);
- //在这追加其他选项的限制处理
- // 更新数据
- update_option(‘classic_options’, $options);
- } {
- // 否则, 重新获取选项组, 也就是对数据进行初始化
- ClassicOptions::getOptions();
- }
- //添加设置页面
- add_theme_page(“主题设置”, “主题设置”, ‘edit_themes’, basename(), (‘ClassicOptions’, ‘display’));
- }
- /* — 标签页 — */
- display() {
- $options = ClassicOptions::getOptions(); ?>
- <form method=“post” enctype=“multipart/form-data” name=“classic_form” id=“classic_form”>
- <div =“wrap”>
- <h2><?php _e(‘wp自学笔记主题设置’, ‘classic’); ?></h2>
- <!– 设置内容 –>
- <table =“form-table”>
- <tbody>
- <tr valign=“top”>
- <td>
- <label>
- <input type=“text” name=“ashu_copy_right” value=“<?php echo($options[‘ashu_copy_right’]); ?>” size=“20”/><?php _e(‘wp自学笔记版权文字’);?>
- </label>
- </td>
- </tr>
- </tbody>
- </table>
- <!– TODO: 在这里追加其他选项内容 –>
- <p =“submit”>
- <input type=“submit” name=“classic_save” value=“<?php _e(‘保存设置’); ?>” />
- </p>
- </div>
- </form>
- <?php
- }
- }
- /*初始化,执行ClassicOptions类的init函数*/
- add_action(‘admin_menu’, (‘ClassicOptions’, ‘init’));
- ?>
类的解析:
其实这个类也很简单,第一步:通过admin_menu钩子执行类的init函数,而init函数代码很简单,就是处理和保存数据,添加一个设置页面,这两个代码前面的 教程都已经讲过。display函数更加简单,知识输出一个表单而已。getOption函数也就是获取选项的数据,如果没有数据就设置一个默认数据。
难点:admin_menu钩子中,执行函数使用array(‘类’,’函数’)这种形式,我们在后台教程二中提到过一次,还有 “类::函数”这种新式的调用,可以参考php资料。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END