設定の追加
register_setting()
を使って新しい設定を定義すると、テーブル {$wpdb->prefix}_options
にエントリーが作成されます。
既存のページに新しいセクションを追加するには、add_settings_section()
を使います。
既存のセクションに新しいフィールドを追加するには、add_settings_field()
を使います。
設定の追加
register_setting(
string $option_group,
string $option_name,
callable $sanitize_callback = ''
);
使用されるパラメータについての完全な説明は、register_setting()
に関する関数リファレンスを参照してください。
セクションの追加
add_settings_section(
string $id,
string $title,
callable $callback,
string $page
);
セクションとは、WordPress の設定ページで見られる、共通の見出しを持つ設定グループのことです。プラグインでは、まったく新しいページを作成するのではなく、既存の設定ページに新しいセクションを追加できます。これにより、プラグインのメンテナンスが簡単になり、ユーザーが学習するための新しいページが少なくなります。
使用されるパラメータについての完全な説明は、add_settings_section()
に関する関数リファレンスを参照してください。
フィールドの追加
add_settings_field(
string $id,
string $title,
callable $callback,
string $page,
string $section = 'default',
array $args = []
);
使用されるパラメータについての完全な説明は、add_settings_field()
に関する関数リファレンスを参照してください。
例
function wporg_settings_init() {
// register a new setting for "reading" page
register_setting('reading', 'wporg_setting_name');
// register a new section in the "reading" page
add_settings_section(
'wporg_settings_section',
'WPOrg Settings Section', 'wporg_settings_section_callback',
'reading'
);
// register a new field in the "wporg_settings_section" section, inside the "reading" page
add_settings_field(
'wporg_settings_field',
'WPOrg Setting', 'wporg_settings_field_callback',
'reading',
'wporg_settings_section'
);
}
/**
* register wporg_settings_init to the admin_init action hook
*/
add_action('admin_init', 'wporg_settings_init');
/**
* callback functions
*/
// section content cb
function wporg_settings_section_callback() {
echo '<p>WPOrg Section Introduction.</p>';
}
// field content cb
function wporg_settings_field_callback() {
// get the value of the setting we've registered with register_setting()
$setting = get_option('wporg_setting_name');
// output the field
?>
<input type="text" name="wporg_setting_name" value="<?php echo isset( $setting ) ? esc_attr( $setting ) : ''; ?>">
<?php
}
設定の取得
get_option(
string $option,
mixed $default = false
);
設定の取得は、関数 get_option()
で実現します。
この関数は2つのパラメータを受け付けます。オプションの名前と、そのオプションに対する省略可能なデフォルト値です。
例
// Get the value of the setting we've registered with register_setting()
$setting = get_option('wporg_setting_name');