css 获取WordPress管理页面的背景颜色?

2ledvvac  于 2022-11-19  发布在  WordPress
关注(0)|答案(1)|浏览(182)

我需要插件管理页面中的某些颜色。在php中有没有方法可以得到#wpadminbar或#adminmenu .wp-submenu的当前活动颜色或某个元素的其他样式?我不需要模式名(base,focus,current)!
例如代码:

<?php
$wpadminbar_background_color = //get_background_color???;
echo 'Current admin bar background color for your theme: #' . $wpadminbar_background_color;
?>

我只需要某些元素的颜色。

wixjitnu

wixjitnu1#

首先,你需要使用一个小技巧。WP有函数get_user_option('admin_color'),它会给予你你的配色方案的名称。你可以使用这个函数,而不是只调用这个函数:

$admin_colors;
add_action('admin_head', function(){global $_wp_admin_css_colors; $admin_colors = $_wp_admin_css_colors;});

现在通过调用

$admin_colors[get_user_option('admin_color')]['colors']; // array(0 => #1d2327, 1 => #2c3338, 2 => #2271b1, 3 => #72aee6)

你将得到管理方案颜色。2所以在你的代码中使用:

<?php
$admin_colors;
add_action('admin_head', function(){global $_wp_admin_css_colors; $admin_colors = $_wp_admin_css_colors;});
$wpadminbar_background_color = $admin_colors[get_user_option('admin_color')]['colors'][0]; // array(0 => #1d2327, 1 => #2c3338, 2 => #2271b1, 3 => #72aee6)
echo 'Current admin bar background color for your theme: #' . $wpadminbar_background_color;
?>

编辑

实际上,上面的代码只是在管理设置中显示调色板的颜色。最简单的方法是如何获得实际颜色。你在$admin_colors中不仅有颜色,还有css文件的url(在默认主题中不起作用)。所以你可以获得css文件的内容,然后在这个文件中用regex搜索值。

$content = file_get_contents($admin_colors[get_user_option('admin_color')]->url);
preg_match('/#wpadminbar{[^}]*background:(#[a-eA-E0-9]{3,6})[^}]*}/', $content, $admin_color);
echo $admin_color[1];

相关问题