创建选项页面

0条评论

前言

在WordPress中创建自定义选项面板非常容易。

首先,请查看添加管理菜单以了解如何创建菜单条目和新页面。

只要按照步骤进行操作,WordPress就会为你处理好选项创建,升级,保存和重定向等操作。它还会审查权限并进行其它幕后操作。

 

打开页面

如果要和现有WordPress选项页面的外观相匹配,请打开:

<div class="wrap">
<h2>Your Plugin Name</h2>

 

表单标签

然后,使用以下代码创建一个HTML格式:

<form method="post" action="options.php">

 

随机数

在以上表单标签开头部分,插入以下PHP代码:

<?php wp_nonce_field('update-options'); ?>

这将插入两个隐藏的域,它会自动帮助用户更新选项,并让用户转向正确的管理页面(因为表单行为位于另一个页面)。

 

表单表格

许多选项页都使用带有"form-table"类的表格来显示选项。为了和这些页面的外观相匹配,请创建新表格:

<table class="form-table">

创建和你新建选项(存储在选项表格中)名称相同的域,如:

<tr valign="top">
<th scope="row">New Option Name</th>
<td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td>
</tr>

仔细观察<input>内的元素 :

<input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" />

使用get_option()函数作为域的值,保存选项时系统会自动更新函数。

所有选项添加完成后,关闭表格:

</table>

 

行为域

接下来,创建一个包括update值的名为action的hidden(隐藏)域,

<input type="hidden" name="action" value="update" />

 

page_options 域

最后,创建名为page_options的隐藏域,并用逗号隔开页面中要保存的所有选项。

<input type="hidden" name="page_options" value="new_option_name,some_other_option,option_etc" />

 

关闭标签

关闭其它选项后的表单标签,如果愿意,也可再包含一个"Update Options"按钮,虽然WordPress默认文件已包括一个。

<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>

另外,the _e()函数会处理文本的翻译。更多信息请查看Localizing WordPress

 

全文

<div class="wrap">
<h2>Your Plugin Name</h2>

<form method="post" action="options.php">
<?php wp_nonce_field('update-options'); ?>

<table class="form-table">

<tr valign="top">
<th scope="row">New Option Name</th>
<td><input type="text" name="new_option_name" value="<?php echo get_option('new_option_name'); ?>" /></td>
</tr>
 
<tr valign="top">
<th scope="row">Some Other Option</th>
<td><input type="text" name="some_other_option" value="<?php echo get_option('some_other_option'); ?>" /></td>
</tr>

<tr valign="top">
<th scope="row">Options, Etc.</th>
<td><input type="text" name="option_etc" value="<?php echo get_option('option_etc'); ?>" /></td>
</tr>

</table>

<input type="hidden" name="action" value="update" />
<input type="hidden" name="page_options" value="new_option_name,some_other_option,option_etc" />

<p class="submit">
<input type="submit" name="Submit" value="<?php _e('Save Changes') ?>" />
</p>

</form>
</div>