Settings

Settings

WordPress ให้ API เพื่อใช้ในการดูแลและจัดการระบบมา 2 ตัว ซึ่งประกอบไปด้วย

  • Settings API ใช้ในการสร้างและจัดการฟอร์มข้อมูลสำหรับนักพัฒนา
  • Options API ใช้ในการจัดการข้อมูลด้วยการใช้คีย์เวิร์ด หรือค่าพื้นฐานแบบง่ายๆ

 

1 Settings API

ในการใช้งาน Settings API นั้นประกอบด้วย 3 ขั้นตอน

ขั้นตอนที่ 1 ลงทะเบียนใช้งาน settings api โดยใช้ register_setting()

ไวยากรณ์

register_setting( string $option_group, string $option_name, array $args = array() )

 

  • $option_group (Require) กลุ่มชื่อในการตั้งค่า โดยค่าพื้นฐานของกลุ่มชื่อประกอบไปด้วย “general”, “discussion” , “media”, “reading”, “writing”, “misc”, “options”, และ “privacy”   
  • $option_name (Require) ชื่อในการตั้งค่าและบันทึก
  • $args ข้อมูลที่ใช้ในการอธิบายการตั้งค่า ซึ่งประกอบไปด้วย
    • type (สตริง) ประเภทของข้อมูลที่เกี่ยวข้องกับการตั้งค่าประกอบด้วย ‘string’, ‘boolean’, ‘integer’, ‘number’, ‘array’ และ ‘object’
    • description (สตริง) คำอธิบายข้อมูลในการตั้งค่า
    • sanitize_callback ฟังก์ชันเรียกกลับที่ล้างค่าของตัวเลือก
    • show_in_rest (บูล | อาร์เรย์) ว่าควรรวมข้อมูลที่เกี่ยวข้องกับการตั้งค่านี้ใน REST API หรือไม่ เมื่อลงทะเบียนการตั้งค่าที่ซับซ้อนอาร์กิวเมนต์นี้อาจเป็นอาร์เรย์ที่มีคีย์ “schema” ก็ได้
    • default ค่าเริ่มต้นคืออาเรย์

 

ขั้นตอนที่ 2 เพิ่มส่วนของกลุ่มการตั้งค่า

การเพิ่มส่วนของการตั้งค่านั้นใช้เพื่อเพิ่มส่วนของกลุ่มการตั้งค่าใหม่สำหรับหน้าผู้ดูแลระบบ โดยใช้ add_settings_section()

ไวยากรณ์

add_settings_section( string $id, string $title, callable $callback, string $page )

 

  • $id (Require) ใช้ในการระบุ Slug name
  • $title (Require) ชื่อในการจัดรูปแบบของ section
  • $callback (Require) ชื่อฟังก์ชันเรียกกลับ
  • $page (Require) หน้าของการตั้งค่าที่จะแสดงผลซึ่งประกอบไปด้วย “general”, “reading”, “writing”, “discussion”, “media” เป็นต้น

 

ขั้นตอนที่ 3 เพิ่มฟิลด์ในการตั้งค่าที่จะแสดงเป็นส่วนหนึ่งในหน้าการตั้งค่าโดยใช้ add_settings_field()

          ไวยากรณ์

add_settings_field( string $id, string $title, callable $callback, string $page, string $section = 'default', array $args = array() )

 

  • $id (Require) ระบุ slug name ของฟิลด์
  • $title (Require) กำหนดชื่อหรือป้ายชื่อของฟิลด์
  • $callback (Require) ระบุฟังก์ชันเรียกกลับ
  • $page (Require) slug name ของหน้าการตั้งค่าที่จะแสดงส่วน ‘general’ , ‘reading’ หรือ ‘writing’ เป็นต้น

 

ขั้นตอนสุดท้าย เป็นการกำหนดฟังก์ชันเพื่อให้การตั้งค่าประสบผลสำเร็จโดยใช้ get_option()

ไวยากรณ์

get_option( string $option, mixed $default = false )

 

  • $option (Require) ชื่อที่กำหนดไว้ที่ register_setting()
  • $default ค่าเริ่มต้นเป็น False

 

ตัวอย่างการใช้ Settings API

<?php
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
}
?>

 

  • บรรทัดที่ 4 ลงทะเบียนใช้ Settings API
  • บรรทัดที่ 6-10 เพิ่มส่วนของกลุ่มการตั้งค่าโดยเรียกไปที่ wporg_settings_section_callback() ในบรรทัดที่ 30-32
  • บรรทัดที่ 12-17 เพิ่มฟิลด์ที่จะแสดงในการตั้งค่าโดยเรียกไปที่ wporg_settings_field_callback() ในบรรทัดที่ 35-42
  • บรรทัดที่ 2-18 เป็นฟังชั่นของ Setting API
  • บรรทัดที่ 23 ทำการ Hook โดยระบุฟังก์ชัน wporg_settings_init() จากบรรทัดที่ 2-18
  • บรรทัดที่ 37 รับการตั้งค่าเพื่อให้การตั้งประสบผลสำเร็จ

 

 

2 Options API

Options API ช่วยให้สามารถทำการ สร้าง (Create) , อ่าน (Read) , อัพเดท (Update) และ ลบข้อมูล (Delete) ได้ ซึ่งในการเก็บข้อมูล options นั้นสามารถทำได้ 2 รูปแบบ คือ 1) แบบค่าเดียว และ 2) แบบอาเรย์

  1. แบบค่าเดียว (Single Value)

          เมื่อทำการบันทึก options name จะทำการอ้างถึงเพียงค่าเดียวเท่านั้น

// add a new option

add_option('wporg_custom_option', 'hello world!');

// get an option

$option = get_option('wporg_custom_option');

 

  1. เก็บข้อมูลแบบอาเรย์

          เมื่อทำการบันทึก option name จะทำการอ้างถึงค่าอาเรย์ซึ่งจะต้องระบุคีย์ หรือคู่คำในการอ้างถึงด้วย

// array of options

$data_r = array('title' => 'hello world!', 1, false );

// add a new option

add_option('wporg_custom_option', $data_r);

// get an option

$options_r = get_option('wporg_custom_option');

// output the title

echo esc_html($options_r['title']);

หากคุณพบคำที่สะกดผิด เว้นวรรคไม่ถูกต้อง ฯ โปรดแจ้งให้เราทราบ โดยลากคลุม (highlight) ข้อความนั้น แล้วกด Ctrl + Enter

ไม่สามารถคัดลอกเนื้อหานี้

Spelling error report

The following text will be sent to our editors: