สิ่งที่ฉันต้องการจะทำคือการเพิ่มฟิลด์ที่กำหนดเองสองสามอย่างให้กับการตั้งค่าทั่วไป นี่คือรหัสที่ฉันใช้ มันใช้งานได้ดี แต่ฉันไม่สามารถคิดได้ว่าจะเพิ่มฟิลด์เพิ่มเติมได้อย่างไร
ฉันต้องการสร้างสองฟิลด์สำหรับตอนนี้หนึ่งฟิลด์สำหรับหมายเลขโทรศัพท์และอีกฟิลด์หนึ่งสำหรับที่อยู่:
function register_fields()
{
register_setting('general', 'my_first_field', 'esc_attr');
add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_custom_field', 'general');
}
function print_custom_field()
{
$value = get_option( 'my_first_field', '' );
echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />';
}
add_filter('admin_init', 'register_fields');
วิธีเดียวที่ฉันจัดการเพื่อให้มันทำงานได้กับหลาย ๆ ฟิลด์คือการทำซ้ำทุกอย่าง
ดังนั้นมันจะเป็นดังนี้:
function register_fields()
{
register_setting('general', 'my_first_field', 'esc_attr');
add_settings_field('my_first_field', '<label for="my_first_field">'.__('My Field' , 'my_first_field' ).'</label>' , 'print_first_field', 'general');
register_setting('general', 'my_second_field', 'esc_attr');
add_settings_field('my_second_field', '<label for="my_second_field">'.__('My Field' , 'my_second_field' ).'</label>' , 'print_second_field', 'general');
}
function print_first_field()
{
$value = get_option( 'my_first_field', '' );
echo '<input type="text" id="my_first_field" name="my_first_field" value="' . $value . '" />';
}
function print_second_field()
{
$value = get_option( 'my_second_field', '' );
echo '<input type="text" id="my_second_field" name="my_second_field" value="' . $value . '" />';
}
add_filter('admin_init', 'register_fields');
แต่นี่อาจไม่ใช่วิธีที่ดีที่สุดที่จะทำฉันพยายามสร้างsettings_section
แต่มันก็ใช้งานไม่ได้หรือไม่ได้บันทึก ฯลฯ มันสับสนมาก