設定の追加
新しい設定を register_setting() を使用して定義する必要があります。これにより、{$wpdb->prefix}_options
テーブルにエントリが作成されます。
既存のページに新しいセクションを追加するには、add_settings_section() を使用します。
既存のセクションに新しいフィールドを追加するには、add_settings_field() を使用します。
register_setting() および前述の add_settings_*()
関数はすべて admin_init
アクションフックに追加する必要があります。
設定の追加
register_setting( string $option_group, string $option_name, array $args = []);
使用されるパラメータの完全な説明については、register_setting() に関する関数リファレンスを参照してください。
セクションの追加
add_settings_section( string $id, string $title, callable $callback, string $page, array $args = []);
セクションは、共通の見出しを持つ 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');