了解wordpress

时间:2017-11-11 09:07:01

标签: wordpress

我想了解add_settings_section()回调函数中$args['id']的含义,以及循环如何获取每个部分的id:

这里我的数组添加了部分信息:

$ap_sections = [
    'section-theme-settings' => [
        'title'     => 'Theme settings',
        'desc'      => 'General theme settings'
    ],
    'section-styling-settings' => [
        'title'     => 'Styling settings',
        'desc'      => 'settings for editing colors, fonts and css.'
    ],
    'section-social-settings' => [
        'title'     => 'Social settings',
        'desc'      => 'Edit your social media profiles.'
    ]
];

这是我的循环:

foreach ( $ap_sections as $section_id => $section_value ) {
        add_settings_section( $section_id, $section_value['title'], 'ap_render_section', 'ap-theme-options' );
    }

这里是ap_render_section回调函数:

function ap_render_section($args) {
    global $ap_sections;
    echo '<p>' . $ap_sections[ $args['id'] ] ['desc'] . '</p>';
    echo '<hr />';
}

我的目标是理解不是复制和代码

1 个答案:

答案 0 :(得分:1)

每个部分都应该有唯一的ID。 add_settings_section函数中的第一个参数是添加的部分的ID。 检查WP Codex的代码:

add_settings_section(
    'eg_setting_section',
    'Example settings section in reading',
    'eg_setting_section_callback_function',
    'reading'
);
function eg_setting_section_callback_function( $arg ) {
    // echo section intro text here
    echo '<p>id: ' . $arg['id'] . '</p>';             // id: eg_setting_section
    echo '<p>title: ' . $arg['title'] . '</p>';       // title: Example settings section in reading
    echo '<p>callback: ' . $arg['callback'] . '</p>'; // callback: eg_setting_section_callback_function
}

如您所见,这里的$ arg ['id']是“eg_setting_section”。 因此,add_settings_section函数将您添加的唯一slug和title作为数组元素传递给回调函数。