创建WordPress选项页面的两种方法

时间:2011-08-22 作者:Wordpressor

我即将为我的WordPress主题创建自己的选项页面,我有点困惑。

我见过很多使用数组生成选项页的主题,看起来是这样的:

$options = array (

     array(    "name" => "Welcome Message",
               "type" => "title"),

     array(    "type" => "open"),

     array(    "name" => "Title",
               "desc" => "Enter a title to display for your welcome message.",
               "id" => $shortname."_welcome_title",
               "std" => "",
               "type" => "text"),
);
再加上一些生成前端、表、表单等的其他函数。

另一方面,Codex(http://codex.wordpress.org/Creating_Options_Pages ).

它们看起来像:

<form method="post" action="options.php">
    <?php settings_fields( \'baw-settings-group\' ); ?>
    <?php do_settings( \'baw-settings-group\' ); ?>
    <table class="form-table">
        <tr valign="top">
        <th scope="row">New Option Name</th>
        <td><input type="text" name="new_option_name" value="<?php echo get_option(\'new_option_name\'); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Some Other Option</th>
        <td><input type="text" name="some_other_option" value="<?php echo get_option(\'some_other_option\'); ?>" /></td>
        </tr>

        <tr valign="top">
        <th scope="row">Options, Etc.</th>
        <td><input type="text" name="option_etc" value="<?php echo get_option(\'option_etc\'); ?>" /></td>
        </tr>
    </table>

    <p class="submit">
    <input type="submit" class="button-primary" value="<?php _e(\'Save Changes\') ?>" />
    </p>

</form>
什么是优点和缺点;这些方法的缺点以及我应该使用/首选哪种方法?

1 个回复
最合适的回答,由SO网友:Chip Bennett 整理而成

我强烈建议:Theme Review guidelines for Theme Settings and Data Security. (如果您打算将主题托管在WPORG存储库中,您将required 遵循这些指导原则。

以下是简要总结:

主题需要在所有选项、自定义函数、自定义变量和自定义常量前面加上主题slug(或适当的变体)主题需要使用add\\u theme\\u page()的edit\\u theme\\u options功能,而不是依赖角色(如“administrator”)或其他功能(如“edit\\u Themes”、“manage\\u options”)来添加设置页

  • 主题需要使用esc\\u attr()进行文本输入,esc\\u html()或WP 3.1中的esc\\u textarea()进行文本区域Incorporating the Settings API in WordPress Themes (您的真挚)
  • WordPress Settings API Tutorial (奥托)A Sample WordPress Theme Options Page (伊恩·斯图尔特)
    • 编辑,澄清一下:你不必在这里选择任何一个。设置API可以同时处理这两种方法,事实上,这一点非常优雅。

      这个add_settings_field() 调用可以动态生成,并且可以使用单个回调,通过一个开关输出特定于字段类型的表单字段标记。Here\'s how I implement it.

    结束

    相关推荐