admin_color_scheme_picker()
概述
admin_color_scheme_picker() 函数用于在用户编辑页面显示默认的管理界面颜色方案选择器。它处理颜色方案的排序、默认值设置,并生成相应的 HTML 输出。
关键要点
- 函数参数为必需的 $user_id,用于指定用户 ID。
- 通过全局变量 $_wp_admin_css_colors 获取颜色方案,并确保 'fresh'、'light'、'modern' 优先排序。
- 使用 get_user_option() 获取用户当前颜色方案,若无有效值则默认设为 'fresh'。
- 输出包含单选按钮、颜色预览和名称的 HTML 表单元素,用于颜色方案选择。
代码示例
function admin_color_scheme_picker( $user_id ) {
global $_wp_admin_css_colors;
ksort( $_wp_admin_css_colors );
if ( isset( $_wp_admin_css_colors['fresh'] ) ) {
// Set Default ('fresh') and Light should go first.
$_wp_admin_css_colors = array_filter(
array_merge(
array(
'fresh' => '',
'light' => '',
'modern' => '',
),
$_wp_admin_css_colors
)
);
}
$current_color = get_user_option( 'admin_color', $user_id );
if ( empty( $current_color ) || ! isset( $_wp_admin_css_colors[ $current_color ] ) ) {
$current_color = 'fresh';
}
?>
<!-- HTML output for color scheme picker -->
<?php
}注意事项
- 函数依赖于全局变量 $_wp_admin_css_colors,需确保其已正确初始化。
- 颜色方案输出使用 esc_attr()、esc_url() 等函数进行转义,以确保安全性。
- 自 WordPress 3.0.0 版本引入,无后续变更记录。
Displays the default administration color scheme picker (Used in user-edit.php).
Parameters
$user_idintrequired-
User ID.
Source
function admin_color_scheme_picker( $user_id ) {
global $_wp_admin_css_colors;
ksort( $_wp_admin_css_colors );
if ( isset( $_wp_admin_css_colors['fresh'] ) ) {
// Set Default ('fresh') and Light should go first.
$_wp_admin_css_colors = array_filter(
array_merge(
array(
'fresh' => '',
'light' => '',
'modern' => '',
),
$_wp_admin_css_colors
)
);
}
$current_color = get_user_option( 'admin_color', $user_id );
if ( empty( $current_color ) || ! isset( $_wp_admin_css_colors[ $current_color ] ) ) {
$current_color = 'fresh';
}
?>
<fieldset id="color-picker" class="scheme-list">
<legend class="screen-reader-text"><span></span></legend>
$color_info ) :
?>
<div class="color-option <?php echo ( $color === $current_color ) ? 'selected' : ''; ?>">
<input name="admin_color" id="admin_color_<?php echo esc_attr( $color ); ?>" type="radio" value="<?php echo esc_attr( $color ); ?>" class="tog" <?php checked( $color, $current_color ); ?> />
<input type="hidden" class="css_url" value="<?php echo esc_url( $color_info->url ); ?>" />
<input type="hidden" class="icon_colors" value="<?php echo esc_attr( wp_json_encode( array( 'icons' => $color_info->icon_colors ) ) ); ?>" />
<label for="admin_color_<?php echo esc_attr( $color ); ?>">name ); ?></label>
<div class="color-palette">
colors as $html_color ) {
?>
<div class="color-palette-shade" style="background-color: <?php echo esc_attr( $html_color ); ?>"> </div>
</div>
</div>
</fieldset>
</pre><p class="wporg-dot-link-list"><a href="https://developer.wordpress.org/reference/files/wp-admin/includes/misc.php/">View all references</a> <a href="https://core.trac.wordpress.org/browser/tags/6.9.4/src/wp-admin/includes/misc.php#L999">View on Trac</a> <a href="https://github.com/WordPress/wordpress-develop/blob/6.9.4/src/wp-admin/includes/misc.php#L999-L1052">View on GitHub</a></p></section>
<section class="wp-block-wporg-code-reference-related" data-nosnippet="true"><h2 id="related" class="is-toc-heading wp-block-heading has-heading-5-font-size" tabindex="-1" ><a href="#related">Related</a></h2> <section style="margin-top:var(--wp--preset--spacing--20)" class="wp-block-wporg-code-table" id="uses"><figure class="wp-block-table "><table><thead><tr><th scope="col">Uses</th><th scope="col">Description</th></tr></thead><tbody><tr class=""><td><a href="https://developer.wordpress.org/reference/functions/checked/">checked()</a><code>wp-includes/general-template.php
Outputs the HTML checked attribute.
wp_nonce_field()wp-includes/functions.php
Retrieves or display nonce hidden field for forms.
get_user_option()wp-includes/user.php
Retrieves user option that can be either per Site or per Network.
wp_json_encode()wp-includes/functions.php
Encodes a variable into JSON, with some confidence checks.
_e()wp-includes/l10n.php
Displays translated text.
esc_attr()wp-includes/formatting.php
Escaping for HTML attributes.
esc_url()wp-includes/formatting.php
Checks and cleans a URL.
esc_html()wp-includes/formatting.php
Escaping for HTML blocks.
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |