更新:以下所有代码都应该进入你的函数中。php文件
制作主题选项页面的最佳(当然也是最简单)方法可能是使用Wordpress设置API。一个注释。。。只要用一些独特的短语(我使用我的主题名)替换代码中的THEME\\u名称,就可以了。
首先,我们需要告诉WordPress,我们将使用一些主题选项。我们通过打电话register_setting.
function add_theme_options_init()
{
register_setting( THEME_NAME . \'_options_group\', THEME_NAME . \'_theme_options\', \'validate_theme_options\' );
}
接下来,创建将在其中设置选项的“实际选项”页面。
function add_theme_options_page()
{
$page_title = \'Theme Options\';
$menu_title = \'Theme Options\';
$cap = \'manage_options\'; // capability required for access to this menu
$slug = THEME_NAME . \'-options\';
$callback = \'draw_theme_options_page\';
add_options_page( $page_title, $menu_title, $cap, $slug, $callback );
}
现在添加“draw\\u theme\\u options\\u page”函数,该函数用作“add\\u theme\\u options\\u page”中的回调函数,该函数将为主题选项页输出HTML。在这个示例中,您可以看到我添加了三个字段:1)Facebook页面URL 2)Twitter句柄3)添加Twitter搜索词的字段
function draw_theme_options_page()
{
?>
<div class="wrap">
<h2>Theme Options</h2>
<form method="post" action="options.php">
<?php
// this should be the same as the second parameter of register_setting()
$opt_name = THEME_NAME . \'_theme_options\';
// adds all the necessary hidden form fields
settings_fields( THEME_NAME . \'_options_group\' );
// get the existing options
$options = get_option( $opt_name );
// the options fields
$opt = array(
\'fb_page\' => $opt_name . \'[fb_page]\',
\'twitter\' => $opt_name . \'[twitter]\',
\'twitter_search\' => $opt_name . \'[twitter_search]\',
);
?>
<table class="form-table">
<!-- Facebook Page URL -->
<tr valign="top"><th scope="row">Facebook Page</th>
<td><input type="text" name="<?php echo $opt[\'fb_page\'] ?>" value="<?php echo $options[\'fb_page\']; ?>" /></td>
</tr>
<!-- Twitter Stuff -->
<tr valign="top"><th scope="row">Twitter ID</th>
<td><input type="text" name="<?php echo $opt[\'twitter\'] ?>" value="<?php echo $options[\'twitter\']; ?>" /></td>
</tr>
<tr valign="top"><th scope="row">Twitter Search Terms</th>
<td><input type="text" name="<?php echo $opt[\'twitter_search\'] ?>" value="<?php echo $options[\'twitter_search\']; ?>" /></td>
<td class="description">Please separate search terms using a comma</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e(\'Save Changes\') ?>" />
</p>
</form>
</div>
<?php
}
现在我们需要添加消毒功能。此函数只是确保没有格式错误的数据保存到数据库中。
function validate_theme_options( $input )
{
$input[\'fb_page\'] = wp_filter_nohtml_kses( $input[\'fb_page\'] );
$input[\'twitter\'] = wp_filter_nohtml_kses( $input[\'twitter\'] );
$input[\'twitter_search\'] = wp_filter_nohtml_kses( $input[\'twitter_search\'] );
return $input;
}
最后,我们实际上需要将所有这些函数绑定到正确的Wordpress挂钩中,以便添加主题选项页面并正常工作。
add_action( \'admin_init\', \'add_theme_options_init\' );
add_action( \'admin_menu\', \'add_theme_options_page\' );
这段代码几乎与我在自己的主题中使用的内容一模一样,但您可能需要稍微使用它并检查拼写错误。
有关更多信息,请查看此post on adding Plugin Options