编辑功能-admin_init

时间:2012-08-13 作者:Jonas Thomsen

我在角色和能力方面有点困难。

编辑们被判“作弊”呃-尝试更新自定义主题设置时的消息。有人能解释一下原因吗?或者甚至能找到解决办法吗?

<?php
add_action(\'admin_menu\', \'add_global_custom_options\');
function add_global_custom_options() {
add_menu_page(\'Indstillinger\', \'Indstillinger\', \'moderate_comments\', \'functions\',\'global_custom_options\');
}

add_action(\'admin_init\', \'custom_settings_css\');
function custom_settings_css() {
wp_enqueue_style(\'custom-settings-css\', get_bloginfo(\'template_directory\') . \'/theme-files/css/custom-settings.css\');
} ?>

<?php
function global_custom_options()
{?>
<div class="wrap theme-options">
    <h2>Indstillinger</h2>
    <form method="post" action="options.php">
        <?php wp_nonce_field(\'update-options\') ?>

        <div class="section">
            <h3>Settings</h3>
            <p>
                <h4>BOXIT</h4>
                <textarea name="box1" size="45"><?php echo get_option(\'box1\'); ?></textarea>
            </p>
        </div>

        <p><input type="submit" name="Submit" value="Gem indstillinger" /></p>
        <input type="hidden" name="action" value="update" />
        <input type="hidden" name="page_options" value="box1" />
    </form>
</div>
<?php}?>

1 个回复
SO网友:amit

有一种能力叫做edit_theme_options 默认情况下,它只分配给站点管理员,而不分配给编辑器。退房-Roles Vs Capabilities .

要允许编辑器管理主题选项,必须手动将该功能分配给编辑器。此处分配edit_theme_options 有能力editors 只需将此代码放入主题functions.php 文件,以便编辑器可以管理主题选项页。

<?php

        function wpse61651_allow_editor() 
        {
            $role = get_role( \'editor\' ); // pick up role to edit the editor role   
            $role->add_cap( \'edit_theme_options\' ); // Let them manage our theme
        }
        add_action( \'admin_init\', \'wpse61651_allow_editor\');
?>

Resource -

结束