插件选项页面:分组复选框

时间:2016-08-08 作者:Ethan O\'Sullivan

我一直在用WordPress Option Page Generator JeremyHixon帮助我在插件选项页面上抢先一步。我列出了四种不同类型的复选框,可以在这里找到源代码:

https://gist.github.com/factmaven/3896a3aac3888aa5bcddae48d9da5238

然而,我想在我所做的四个部分中的每一部分中添加额外的复选框,如下所示:

Expected result: grouping checkboxes into sections

根据生成器,看起来我需要添加另一个add_settings_field 和另一个回调函数来添加更多复选框;但这看起来比我想象的更乏味,只是在每个部分下添加更多复选框。是否可以在下面添加其他复选框add_settings_field 我已经创建的?例如:

public function personal_options_0_callback() {
    printf(
        \'<input type="checkbox" name="profile_settings_option_name[personal_options_0]" id="personal_options_0" value="personal_options_0" %s> <label for="personal_options_0"> Visual Editor</label>\',
        ( isset( $this->profile_settings_options[\'personal_options_0\'] ) && $this->profile_settings_options[\'personal_options_0\'] === \'personal_options_0\' ) ? \'checked\' : \'\'
    );
    printf(
        \'<input type="checkbox" name="profile_settings_option_name[personal_options_1]" id="personal_options_1" value="personal_options_1" %s> <label for="personal_options_1"> Admin Color Scheme</label>\',
        ( isset( $this->profile_settings_options[\'personal_options_1\'] ) && $this->profile_settings_options[\'personal_options_1\'] === \'personal_options_1\' ) ? \'checked\' : \'\'
    );
}
感谢您的帮助或指导。我以前从未制作过插件选项页面,所以如果有更简单的方法,我也愿意接受您的推荐。谢谢

1 个回复
最合适的回答,由SO网友:Ethan O\'Sullivan 整理而成

如中所述WordPress Support Forums, 在某些情况下,更容易开发存储值的数组。

要对复选框进行分组,我只需从Discussion 获取预期结果的设置页面:使用WordPress的本机样式格式化的一组复选框。以下是一个很好的模板:

<div class="wrap">
    <h1>Profile Settings</h1>

    <form method="post" action="action_here">
        <table class="form-table">
            <tbody>
                <tr>
                    <th scope="row">Personal Options</th>
                    <td>
                        <fieldset>
                            <legend class="screen-reader-text"><span>Personal Options</span></legend>
                            <label for="rich_editing">
                            <input name="rich_editing" type="checkbox" value="rich_editing" />
                            Visual Editor</label>
                            <br>
                            <label for="admin_color">
                            <input name="admin_color" type="checkbox" value="admin_color" />
                            Admin Color Scheme</label>
                            <br>
                            <label for="comment_shortcuts">
                            <input name="comment_shortcuts" type="checkbox" value="comment_shortcuts" />
                            Keyboard Shortcuts</label>
                            <br>
                            <label for="admin_bar_front">
                            <input name="admin_bar_front" type="checkbox" value="admin_bar_front" />
                            Toolbar</label>
                            <br>
                        </fieldset>
                    </td>
                </tr>
                <tr>
                    <th scope="row">Name</th>
                    <td>
                        <fieldset>
                            <legend class="screen-reader-text"><span>Name</span></legend>
                            <label for="first_name">
                            <input name="first_name" type="checkbox" value="first_name" />
                            First Name</label>
                            <br>
                            <label for="last_name">
                            <input name="last_name" type="checkbox" value="last_name" />
                            Last Name</label>
                            <br>
                            <label for="nickname">
                            <input name="nickname" type="checkbox" value="nickname" />
                            Nickname</label>
                            <br>
                            <label for="display_name">
                            <input name="display_name" type="checkbox" value="display_name" />
                            Display Name</label>
                            <br>
                        </fieldset>
                    </td>
                </tr>
            </tbody>
        </table>
        <?php submit_button(); ?>
    </form>
</div>

结果

enter image description here

相关推荐