我正在使用以下代码创建自定义主题选项。
主题options.php
<?php
// create custom plugin settings menu
add_action('admin_menu', 'director_create_menu');
function director_create_menu() {
//create new submenu
add_submenu_page( 'themes.php', 'Director Theme Options', 'Director Options', 'administrator', __FILE__, 'director_settings_page');
//call register settings function
add_action( 'admin_init', 'director_register_settings' );
}
function director_register_settings() {
//register our settings
register_setting( 'director-settings-group', 'director_facebook' );
register_setting( 'director-settings-group', 'director_twitter' );
register_setting( 'director-settings-group', 'director_rss' );
register_setting( 'director-settings-group', 'director_logo' );
register_setting( 'director-settings-group', 'director_analytics' );
}
function director_settings_page() {
?>
<div class="wrap">
<h2>Director Theme Settings</h2>
<form id="landingOptions" method="post" action="options.php">
<?php settings_fields( 'director-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Logo:</th>
<td>
<input type="text" name="director_logo" value="<?php print get_option('director_logo'); ?>" /><br/>
*Upload using the Media Uploader and paste the URL here.
</td>
</tr>
<tr valign="top">
<th scope="row">Facebook Link:</th>
<td>
<input type="text" name="director_facebook" value="<?php print get_option('director_facebook'); ?>" />
</td>
</tr>
<tr valign="top">
<th scope="row">Twitter Link:</th>
<td>
<input type="text" name="director_twitter" value="<?php print get_option('director_twitter'); ?>" />
</td>
</tr>
<tr>
<th scope="row">Display RSS Icon:</th>
<td>
<input type="checkbox" name="director_rss" <?php if(get_option('director_rss') == true){ print "checked"; } ?> />
</td>
</tr>
<tr>
<th scope="row">Google Analytics Code:</th>
<td>
<textarea name="director_analytics"><?php print get_option('director_analytics'); ?></textarea>
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>
<?php } ?>
的functions.php
<?php
.
.
require_once('theme-options.php');
.
.
?>
我得到了菜单“导演选项”,如下图所示。
但是当我点击它时,我没有登陆director_settings_page()
功能下定义的设置页面。
以下是预期结果:
答案 0 :(得分:1)
我采用add_theme_page()
代替add_submenu_page()
的方式。尝试一下,看看它是否有帮助。也许它会引导你走向正确的方向。
<?php
add_action('admin_menu', 'director_create_menu');
function director_create_menu(){
add_theme_page('Director Theme Options', 'Director Theme Options', 'manage_options', 'director_settings', 'director_settings_page');
}
add_action( 'admin_init', 'director_register_settings' );
function director_register_settings(){
//register our settings
register_setting( 'director-settings-group', 'director_facebook' );
register_setting( 'director-settings-group', 'director_twitter' );
register_setting( 'director-settings-group', 'director_rss' );
register_setting( 'director-settings-group', 'director_logo' );
register_setting( 'director-settings-group', 'director_analytics' );
}
//Output the settings page
function director_settings_page(){
?>
<!-- page stuff here -->
答案 1 :(得分:1)
在theme-options.php中替换它。
<?php
add_action('admin_menu', 'director_create_menu');
function director_create_menu(){
add_theme_page('Director Theme Options', 'Director Theme Options', 'manage_options', 'director_settings', 'director_settings_page');
}
add_action( 'admin_init', 'director_register_settings' );
function director_register_settings(){
//register our settings
register_setting( 'director-settings-group', 'director_facebook' );
register_setting( 'director-settings-group', 'director_twitter' );
register_setting( 'director-settings-group', 'director_rss' );
register_setting( 'director-settings-group', 'director_logo' );
register_setting( 'director-settings-group', 'director_analytics' );
}
//Output the settings page
function director_settings_page(){
?>
<div class="wrap">
<h2>Director Theme Settings</h2>
<form id="landingOptions" method="post" action="options.php">
<?php settings_fields( 'director-settings-group' ); ?>
<table class="form-table">
<tr valign="top">
<th scope="row">Logo:</th>
<td>
<input type="text" name="director_logo" value="<?php print get_option('director_logo'); ?>" /><br/>
*Upload using the Media Uploader and paste the URL here.
</td>
</tr>
<tr valign="top">
<th scope="row">Facebook Link:</th>
<td>
<input type="text" name="director_facebook" value="<?php print get_option('director_facebook'); ?>" />
</td>
</tr>
<tr valign="top">
<th scope="row">Twitter Link:</th>
<td>
<input type="text" name="director_twitter" value="<?php print get_option('director_twitter'); ?>" />
</td>
</tr>
<tr>
<th scope="row">Display RSS Icon:</th>
<td>
<input type="checkbox" name="director_rss" <?php if(get_option('director_rss') == true){ print "checked"; } ?> />
</td>
</tr>
<tr>
<th scope="row">Google Analytics Code:</th>
<td>
<textarea name="director_analytics"><?php print get_option('director_analytics'); ?></textarea>
</td>
</tr>
</table>
<p class="submit">
<input type="submit" class="button-primary" value="<?php _e('Save Changes') ?>" />
</p>
</form>
</div>
<?php } ?>
工作正常。
这是截图。
享受干杯:)