从 WordPress 6.0 中的用户配置文件页面中删除配色方案选项

Remove color scheme options from user's profile page in WordPress 6.0

我一直在必须使用的插件中使用这段代码来删除整个配色方案部分:

remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );

不幸的是,对于 WordPress 6.0,这不再有效。我发现 Core 的 add_action( 'admin_color_...recently moveddefault-filters.php 文件到 admin-filters.php 文件,但我不确定为什么以及 如何 我必须更新上面的代码片段才能使其再次运行。

您可以使用 user-edit.php 中 if 语句的其他部分来删除更改配色方案的功能。

来自user-edit.php

<?php if ( count( $_wp_admin_css_colors ) > 1 && has_action('admin_color_scheme_picker' ) ) : ?>

虽然不是使用删除操作功能的直接解决方案,但您可以将 $_wp_admin_css_colors 全局设置为空数组...

add_action( 'admin_init', function () {
    global $_wp_admin_css_colors;
    $_wp_admin_css_colors = [];
} );

要使 remove_action() 调用生效,需要在添加要删除的操作之后,操作 运行s 之前调用它。

WordPress 在 admin-filters.php and then runs the action in the user-edit.php 管理页面模板中添加 admin_color_scheme_picker 操作。

要在用户个人资料页面上调用 admin_color_scheme_picker 操作之前删除它,您可以 运行 使用 admin_head-profile.php 挂钩调用 remove_action()

add_action( 'admin_head-profile.php', 'wpse_72463738_remove_admin_color_scheme_picker' );

/**
 * Remove the color picker from the user profile admin page.
 */
wpse_72463738_remove_admin_color_scheme_picker() {
    remove_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
}

请注意,admin_head-{$hook_suffix} 挂钩在特定管理页面的头部部分触发。在上面的示例中,将钩子名称中的 $hook_suffix 替换为 profile.php 使其在用户管理配置文件页面上变为 运行。