設定 API の使用

設定の追加

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,
  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');

原文 / 日本語訳

s
検索
c
新規投稿を作成する
r
返信
e
編集
t
ページのトップへ
j
次の投稿やコメントに移動
k
前の投稿やコメントに移動
o
コメントの表示を切替
esc
投稿やコメントの編集をキャンセル