主题选项页面未出现在 Wordpress 管理面板上
Theme options page not appearing on Wordpress admin panel
我正在使用下面的代码创建自定义主题选项。
主题-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 Options" 如下图所示。
但是当我点击它时,我并没有进入 director_settings_page()
函数下定义的设置页面。
这是预期结果:
我的做法是使用 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 -->
在您的主题中替换它-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 } ?>
工作正常。
这是屏幕截图。
享受干杯:)
我正在使用下面的代码创建自定义主题选项。
主题-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 Options" 如下图所示。
但是当我点击它时,我并没有进入 director_settings_page()
函数下定义的设置页面。
这是预期结果:
我的做法是使用 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 -->
在您的主题中替换它-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 } ?>
工作正常。
这是屏幕截图。
享受干杯:)