Wordpress函数add Settings Field()向设置页面的某个部分添加新字段

WordPress函数add_settings_field()向设置页面的某个部分添加新字段

WordPress函数add_settings_field()向设置页面的某个部分添加新字段

  在 WordPress CMS内容管理系统中,add_settings_field()函数是 WordPress 中内置函数。WordPress PHP 函数add_settings_field()向设置页面的某个部分添加新字段.

  WordPress 中的该add_settings_field函数用于向设置页面添加新字段。该函数是设置 API 的一部分,它提供了一种在 WordPress 管理区域中创建和管理设置页面和字段的标准化方法。通过使用add_settings_field,开发人员可以定义在设置页面上显示的输入字段,允许用户输入和保存配置选项。此功能将特定字段与设置部分连接起来,确保该字段在设置页面上的正确上下文中显示。

  该函数通过将新字段与负责呈现字段 HTML 的回调函数相链接,方便创建自定义设置界面。此外,它还通过将设置字段与设置页面上定义的特定部分关联,帮助组织设置字段。add_settings_field作为构建自定义设置页面的关键组件,可以添加各种输入字段,以结构化的方式收集用户定义的设置。

  推荐:[最新版]WordPress SEO插件Rank Math Pro

add_settings_field()函数基本语法

描述

  使用 add_settings_field 向 WordPress 添加自定义设置字段

用法

add_settings_field(
    'myprefix_setting-id', 
    'This is the setting title', 
    'myprefix_setting_callback_function', 
    'general', 
    'myprefix_settings-section-name', 
    array( 'label_for' => 'myprefix_setting-id' )
);
  • $id (string, 必需):用于标识字段的 Slug 名称。它用于标签的“id”属性。
  • $title (string,必需):字段的格式化标题。输出期间显示为字段的标签。
  • $callback (可调用,必需):用所需表单输入填充字段的函数。该函数应回显其输出。
  • $page (字符串,必需):显示部分(常规、阅读、写作等)的设置页面的 slug 名称。
  • $section (string,可选):设置页面中显示框的部分的 slug 名称。默认值为“default”。
  • $args(数组,可选):传递给回调函数的额外参数。例如,label_for当提供时,设置标题将包装在<label>元素中。它的 for 属性使用此值填充。是在输出字段时class要添加到元素的 CSS 类。<tr>

  推荐:Swift Performance插件教程WordPress缓存性能优化插件

add_settings_field()函数

  在 WordPress 中,add_settings_field()函数将您必须使用register_setting()注册此函数使用的任何选项,否则它们将不会被自动保存和更新。回调函数需要输出适当的 html 输入并用旧值填充它,保存将在后台完成。html 输入字段的name属性必须与register_setting()中的 $option_name 匹配,并且可以使用get_option()填充此函数还可用于向默认 WP 设置页面(如媒体或常规)添加额外的设置字段。您可以将它们添加到现有部分,或使用add_settings_section() 创建新部分以添加字段。(源文件可参考这里

function add_settings_field( $id, $title, $callback, $page, $section = 'default', $args = array() ) {
	global $wp_settings_fields;

	if ( 'misc' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.0.0',
			sprintf(
				/* translators: %s: misc */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'misc'
			)
		);
		$page = 'general';
	}

	if ( 'privacy' === $page ) {
		_deprecated_argument(
			__FUNCTION__,
			'3.5.0',
			sprintf(
				/* translators: %s: privacy */
				__( 'The "%s" options group has been removed. Use another settings group.' ),
				'privacy'
			)
		);
		$page = 'reading';
	}

	$wp_settings_fields[ $page ][ $section ][ $id ] = array(
		'id'       => $id,
		'title'    => $title,
		'callback' => $callback,
		'args'     => $args,
	);
}

  推荐:Max Mega Menu插件教程WordPress添加超级菜单

如何使用add_settings_field()

  添加文本输入字段在此示例中,在“常规”设置页面中添加了一个文本输入字段。使用函数从 WordPress 数据库中检索此字段的值get_option()。

function text_input_callback($args) {
    $value = get_option($args['id']); 
    echo '<input type="text" id="' . $args['id'] . '" name="' . $args['id'] . '" value="' . $value . '">';
}

add_settings_field(
    'myprefix_text_input', 
    'Enter Text Here', 
    'text_input_callback', 
    'general'
);

  添加复选框字段在此示例中,在“常规”设置页面中添加了一个复选框。如果选中该复选框,则值为“1”。如果未选中,则值为“0”。

function checkbox_callback($args) {
    $value = get_option($args['id']); 
    $checked = $value ? 'checked' : '';
    echo '<input type="checkbox" id="' . $args['id'] . '" name="' . $args['id'] . '" value="1" ' . $checked . '>';
}

add_settings_field(
    'myprefix_checkbox', 
    'Check Here', 
    'checkbox_callback', 
    'general'
);

  在阅读设置页面添加复选框字段

function myplugin_register_checkbox() {
 register_setting('reading', 'myplugin_checkbox_field');
 add_settings_field(
 'myplugin_checkbox_field', 
 'My Plugin Checkbox', 
 'myplugin_checkbox_field_callback', 
 'reading'
 );
}
add_action('admin_init', 'myplugin_register_checkbox');

function myplugin_checkbox_field_callback() {
 $checked = get_option('myplugin_checkbox_field', false);
 echo '<input type="checkbox" id="myplugin_checkbox_field" name="myplugin_checkbox_field" value="1" ' . checked(1, $checked, false) . ' />';
}

  推荐:AliPay WordPress WooCommerce免费支付宝网关接口插件教程

  推荐:WordPress函数使用手册


滚动至顶部