設定の追加

新しい設定を register_setting() を使用して定義する必要があります。これにより、{$wpdb->prefix}_options テーブルにエントリが作成されます。

既存のページに新しいセクションを追加するには、add_settings_section() を使用します。

既存のセクションに新しいフィールドを追加するには、add_settings_field() を使用します。

register_setting() および前述の add_settings_*() 関数はすべて admin_init アクションフックに追加する必要があります。

設定の追加

  1. register_setting( string $option_group, string $option_name, array $args = []);

使用されるパラメータの完全な説明については、register_setting() に関する関数リファレンスを参照してください。

セクションの追加

  1. add_settings_section( string $id, string $title, callable $callback, string $page, array $args = []);

セクションは、共通の見出しを持つ WordPress 設定ページに表示される設定のグループです。プラグインでは、新しいページを作成するのではなく、既存の設定ページに新しいセクションを追加できます。これにより、プラグインのメンテナンスが簡単になり、ユーザーが学ぶ新しいページが少なくなります。

使用されるパラメータの完全な説明については、add_settings_section() に関する関数リファレンスを参照してください。

フィールドの追加

  1. add_settings_field(
  2. string $id,
  3. string $title,
  4. callable $callback,
  5. string $page,
  6. string $section = 'default',
  7. array $args = []
  8. );

使用されるパラメータの完全な説明については、add_settings_field() に関する関数リファレンスを参照してください。

  1. function wporg_settings_init() {
  2. // register a new setting for "reading" page
  3. register_setting('reading', 'wporg_setting_name');
  4. // register a new section in the "reading" page
  5. add_settings_section(
  6. 'wporg_settings_section',
  7. 'WPOrg Settings Section', 'wporg_settings_section_callback',
  8. 'reading'
  9. );
  10. // register a new field in the "wporg_settings_section" section, inside the "reading" page
  11. add_settings_field(
  12. 'wporg_settings_field',
  13. 'WPOrg Setting', 'wporg_settings_field_callback',
  14. 'reading',
  15. 'wporg_settings_section'
  16. );
  17. }
  18. /**
  19. * register wporg_settings_init to the admin_init action hook
  20. */
  21. add_action('admin_init', 'wporg_settings_init');
  22. /**
  23. * callback functions
  24. */
  25. // section content cb
  26. function wporg_settings_section_callback() {
  27. echo '<p>WPOrg Section Introduction.</p>';
  28. }
  29. // field content cb
  30. function wporg_settings_field_callback() {
  31. // get the value of the setting we've registered with register_setting()
  32. $setting = get_option('wporg_setting_name');
  33. // output the field
  34. ?>
  35. <input type="text" name="wporg_setting_name" value="<?php echo isset( $setting ) ? esc_attr( $setting ) : ''; ?>">
  36. <?php
  37. }

設定の取得

  1. get_option(
  2. string $option,
  3. mixed $default = false
  4. );

設定の取得は、get_option() 関数を使用して行います。

この関数は、オプションの名前とそのオプションのオプションのデフォルト値の2つのパラメータを受け入れます。

  1. // Get the value of the setting we've registered with register_setting()
  2. $setting = get_option('wporg_setting_name');