网站制作的时候,经常需要填写一些选项信息,比如联系方式、地址、电话等信息。如果后台增加了这个功能,那就很容易修改信息,不用每次都修改模板文件。下面就说说wordpress怎么制作这样的选型信息。
制作选项信息,需要了解怎么在后台增加一个菜单。可以看我之前的文章 wordpressh后台怎么外观增加一个子菜单
下面就是一个添加选项的一个示例, 作用是向数据库options
表,写入一条数据,或者是更新一条数据。存在就更新,否则就写入一条数据。
需要用的一个函数就是 update_option, 用来更新或者新增一个条数据记录。
// 如果是 POST提交,并且是提交了选项就写入数据库
if( strtoupper($_SERVER['REQUEST_METHOD']) == "POST"
&& $_POST['wp_option_save'] == 'true' ) {
update_option('wp_option_test', $_POST['wp_option_test']);
}
function wz_add_sub_menu() {
add_theme_page('title标题的内容',
'子菜单的名字',
'administrator',
'test', 'wz_show');
}
function wz_show() {
?>
<h1>这是设置页面</h1>
<form method="post" name="ashu_form" id="ashu_form">
测试: <input type="text" name="wp_option_test"
value="<?php echo get_option('wp_option_test'); ?>" />
<input type="hidden" name="wp_option_save" value="true" />
<input type="submit" value="更新" />
</form>
<?php
}
add_action('admin_menu', 'wz_add_sub_menu');
代码的执行过程
默认一次显示这个页面的时候,是get请求,所以这部分代码不执行
if( strtoupper($_SERVER['REQUEST_METHOD']) == "POST"
&& $_POST['wp_option_save'] == 'true' ) {
update_option('wp_option_test', $_POST['wp_option_test']);
}
仅显示了一个form的表单。
点击提交后, 就是一个 POST 请求, 然后就执行 update_option。
代码的改进
这样代码点击提交后,虽然预期的效果有了,但是没有任何提示信息。好的习惯应该是给出个,操作的结果提示,不管是操作是成功或者是失败。修改提示的方法也和简单。利用函数 update_option 的返回值。完整的示例。
if( strtoupper($_SERVER['REQUEST_METHOD']) == "POST"
&& $_POST['wp_option_save'] == 'true' ) {
if( update_option('wp_option_test', $_POST['wp_option_test']) ) {
$msg = "操作成功";
} else {
$msg = "操作失败";
}
}
function wz_add_sub_menu() {
add_theme_page('title标题的内容',
'子菜单的名字',
'administrator',
'test',
'wz_show');
}
function wz_show() {
?>
<!-- 增加的代码 -->
<?php
if(isset($msg)) {
echo '<div class="info">' . $msg . '</div>';
}
?>
<h1>这是设置页面</h1>
<form method="post" name="ashu_form" id="ashu_form">
测试: <input type="text" name="wp_option_test"
value="<?php echo get_option('wp_option_test'); ?>" />
<input type="hidden" name="wp_option_save" value="true" />
<input type="submit" value="更新" />
</form>
<?php
}
add_action('admin_menu', 'wz_add_sub_menu');