使用配置文件个人选项删除操作(_A)

时间:2012-10-10 作者:Zach

我想删除该操作profile_personal_options (更具体地说,是“配色方案和可视化编辑器”复选框),显示在wp-admin/user-edit.php. 我相信这很简单remove_action(), 但我不确定第二个参数是什么。哪里是最好看的地方?

remove_action(\'profile_personal_options\');
我以前使用过:

function of_remove_profile_fields() {
    if (current_user_can(\'manage_options\') == false) {
        ?>
        <style type="text/css">
            form#your-profile p+h3,
            form#your-profile p+h3+table { display:none!important;visibility:hidden!important; }
        </style>
        <?php }
}
add_action( \'admin_print_styles-profile.php\', \'of_remove_profile_fields\' );
add_action( \'admin_print_styles-user-edit.php\', \'of_remove_profile_fields\' );
但我宁愿用正确的方式来做。谢谢

更新确认,这实际上看起来可能是硬编码到user-edit.php. 我应该使用CSS方法吗?是否真的需要该区域或WP?为什么他们不插上自己的do_action(\'profile_personal_options\', $profileuser); ?

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

有时,在定制WordPress管理区域时,您需要有点创意。不使用CSS通常可以做到这一点,但并不总是那么简单:必须了解源文件上发生了什么,并深入研究ifs和ELSE中调用的许多函数。

我想出了一个略显粗糙的方法,应该可以做到这一点:

add_action(\'user_edit_form_tag\', \'remove_unwanted_profile_options\');
function remove_unwanted_profile_options() {
    # Disable visual editor checkbox
    global $wp_rich_edit_exists;
    $wp_rich_edit_exists = false;
    # Disable choice of admin color scheme from profile.php
    remove_action(\'admin_color_scheme_picker\', \'admin_color_scheme_picker\');
}
第二点很简单:只需删除WP用于生成管理方案选择器的操作。第一位的要点是:WP使用rich_edit_exists() 函数查看TinyMCE是否存在(即管理员尚未删除脚本文件),但它将跳过检查全局变量$wp_rich_edit_exists 已设置;因此,在WP有机会解析我们的文件之前,我们只需将其设置为“false”。非常简单,真的。另外,把一切都挂在user_edit_form_tag\' 操作意味着此覆盖仅在查看用户编辑时发生。php(默认情况下,它不使用TinyMCE)。

结束

相关推荐

Retrieve Path of admin.php

是否有更好的方法检索admin的路径。php和wp admin的url。css?我能想到的是:$adminphppath = ABSPATH . \'\\wp-admin\\admin.php\'; $admincssurl = get_bloginfo(\'wpurl\') . \'/wp-admin/css/wp-admin.css\"; 但是,为了安全起见,有些人可能正在更改管理路径。所以我需要一种更可靠的方法。[编辑]我需要管理员的系统路径。php,而不是url。因为我需要包括它