wordpress后台制作教程(六):设置数据的保存
上一篇教程中,我们添加了简单的设置选项,数据的保存我们是直接提交到wp-admin/options.php中的,对于数据的保存我们还可以使用一个专用的函数update_option(),准确的说这个函数是更新设置选项数据的。这一篇教程还是比较重要的,因为我们后面将的教程中,都是使用update_option这个函数来保存、更新设置数据的。
函数用法如下:
- <?php
- update_option( $option, $newvalue );
- //$option为选项名称
- //newvalue为选项的值
- ?>
实例:我们使用上一篇教程的代码,(前面我们已经在默认的Twenty Ten主题中新建一个myfuntions.php ,然后在functions.php文件中include新文件),打开myfunctions.php文件,去掉三个隐藏表单,去掉表单的的提交地址,也就是form标签中的action属性,之后代码如下:
- <?php
- function test_function(){
- add_theme_page( '阿树工作室', '阿树工作室', 'administrator', 'ashu_slug','display_function');
- }
- add_action('admin_menu', 'test_function');
- function display_function(){ ?>
- <form method="post" name="ashu_form" id="ashu_form">
- <h2>阿树工作室主题设置</h2>
- <p>
- <label>
- <input name="ashu_copy_right" size="40" value="<?php echo get_option('ashu_copy_right'); ?>"/>
- 请输入文字
- </label>
- </p>
- <p class="submit">
- <input type="submit" name="option_save" value="<?php _e('保存设置'); ?>" />
- </p>
- </form>
- <?php } ?>
下面我们在文件顶部再添加处理数据的代码:
- <?php
- $option = get_option('ashu_copy_right');//获取选项
- if( $option == '' ){
- //设置默认数据
- $option = '阿树工作室';
- update_option('ashu_copy_right', $option);//更新选项
- }
- if(isset($_POST['option_save'])){
- //处理数据
- $option = stripslashes($_POST['ashu_copy_right']);
- update_option('ashu_copy_right', $option);//更新选项
- }
- ?>
注意:我们这里的例子只有一个设置选项,如果表单中提交了多个数据,可将数据放进一个数组中,这样获取数据的时候只需使用一次get_option函数即可,更新数据也只需要使用一次update_option函数,还有,这一篇文章的方法并不是可取的,如果你只有少量的数据,可以使用上一篇教程中的方法。
下面是myfunctions.php中的所有代码:
- <?php
- $option = get_option('ashu_copy_right');//获取选项
- if( $option == '' ){
- //设置默认数据
- $option = '默认数据';
- update_option('ashu_copy_right', $option);//更新选项
- }
- if(isset($_POST['option_save'])){
- //处理数据
- $option = stripslashes($_POST['ashu_copy_right']);
- update_option('ashu_copy_right', $option);//更新选项
- }
- ?>
- <?php
- function test_function(){
- add_theme_page( '阿树工作室', '阿树工作室', 'administrator', 'ashu_slug','display_function');
- }
- add_action('admin_menu', 'test_function');
- function display_function(){ ?>
- <form method="post" name="ashu_form" id="ashu_form">
- <h2>阿树工作室主题设置</h2>
- <p>
- <label>
- <input name="ashu_copy_right" size="40" value="<?php echo get_option('ashu_copy_right'); ?>"/>
- 请输入文字
- </label>
- </p>
- <p class="submit">
- <input type="submit" name="option_save" value="<?php _e('保存设置'); ?>" />
- </p>
- </form>
- <?php } ?>
!转载请注明来自:阿树工作室-wordpress主题定制,制作教程(wordpress主题定制-阿树工作室)
不懂怎么写入一个数组~
請問我在資料庫並無看到所新增資料 但一切都正常存取
我的后台出现了报错876 要怎么处理呢。
Warning: Cannot modify header information – headers already sent
by (output started at /www/web/365xia8_com/public_html/wp-config.php:1)
in /www/web/365xia8_com/public_html/wp-includes/pluggable.php on line 876
能否请问下,这个是对wordpress数据库已有的表更新数据,那么我自己在wordpress数据库中新建了一个表,想要向这个表中保存数据的话应该怎么写呢?或者说应该使用哪个钩子呢?
那你需要自己写写入和更新等函数。。。不过设置数据一般都不是很多,重新弄一个数据表不是很合适
额,那个数据只能独自存在,重新写入的话是不是很复杂?需要以插件形式写入啊?你能不能发表一篇类似这样功能的代码啊?
我传到网上出现
Warning: Cannot modify header information – headers already sent by
(output started at
C:\Inetpub\wwwroot\gylib\wp-content\themes\20130513\myfunctions.php:14) in C:\Inetpub\wwwroot\gylib\wp-includes\pluggable.php on line 876,是怎么回事,在本地测试的时候没有问题
更改myfunctions的编码格式就好了改为utf-8 bom
如果你是打算使用的话,请直接下载本工作室提供的设置选项类文件。。。wordpress后台制作教程-设置选项类文件
如果你是学习的话,请自行分析错误哦
“这一篇文章的方法并不是可取的”,为什么呀?
其实也是可以用的,只不过我认为,如果将多个设置数据保存在一个数组中,可以减少数据库查询。所以这个能用,但是有更好的代码
写的很好,很详细!优秀的文章~赞一个!学习了~希望多多出些类似后台修改的文章!
多谢支持。。慢慢写吧。。每写一篇都需要精力的,而且要尽量成系列。。
That’s way the bestest asnewr so far!