WordPress 添加额外选项字段到常规设置页面

有时候我们需要添加一些额外的设置选项到常规设置(后台 > 设置 > 常规)页面,下面是一个简单的范例:

add-field-to-general-settings-page-wpdaxue_com

直接添加到主题的 functions.php 即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * WordPress 添加额外选项字段到常规设置页面
 * https://www.wpdaxue.com/add-field-to-general-settings-page.html
 */
$new_general_setting = new new_general_setting();
class new_general_setting {
	function new_general_setting( ) {
		add_filter( 'admin_init' , array( &$this , 'register_fields' ) );
	}
	function register_fields() {
		register_setting( 'general', 'favorite_color', 'esc_attr' );		add_settings_field('fav_color', '<label for="favorite_color">'.__('最喜欢的颜色' ).'</label>' , array(&$this, 'fields_html') , 'general' );	}
	function fields_html() {
		$value = get_option( 'favorite_color', '' );		echo '<input type="text" id="favorite_color" name="favorite_color" value="' . $value . '" />';	}
}

根据自己的需要修改 11、12、15、16 行的代码即可,这里只是简单的 input 表单,你也可以直接添加其他表单类型。

使用 get_option() 函数即可调用选项字段的值,比如上面的例子用 get_option( 'favorite_color' );

倡萌

一个文科IT宅男,喜欢折腾WordPress和被它折腾 ^_^

4 条评论

  1. 咨询确认一下这个add_settings_field函数是不是加相应的区域到“设置”或者设置以下菜单的页面中去

    如果我自己新建了一个侧边栏菜单,可以通过这个add_settings_field加进去么?试了下,第12行的代码general改成自己的menu_slug,没成功。原因是否如上所述?求解答,thx~

发表评论