作为WordPress主题或插件开发者,你可能知道通过 add_menu_page() 函数来给你的主题或插件添加一个顶级菜单,并且通过 $icon_url 参数来定义一个菜单图标。但是如果你想直接调用WordPress默认的菜单图标的话,请继续往下看。
每个WordPress菜单图标都对应一个CSS类,你可以通过它来和你的自定义菜单进行关联。以下是 WP 3.5.2 所用图标(以后的图标版本可能会不一样)
WordPress会自动分配一个图标和CSS类给没有自定义图标的菜单,add_menu_page() 函数没有办法自定义菜单的 CSS 类,唯一的办法就是直接修改用户存储顶级菜单的全局 $menu 数组。以下是一个专门解决这个问题的函数:
/**
* 将菜单的图标设置为任何一个WordPress默认菜单图标
*
* @param 字符串 $menu_slug 是传递给 add_menu_page() 函数的菜单别名或链接
* @param 字符串 $icon_class_name 是图标的 CSS 类,例如 "menu-icon-settings".
* @return bool True if the menu was found and modified successfully, false otherwise.
*/
function set_menu_icon_class($menu_slug, $icon_class_name) {
global $menu;
$slug_index = 2;
$css_class_index = 4;
$icon_url_index = 6;
foreach ($menu as $position => $item) {
if ( $item[$slug_index] == $menu_slug ) {
$item[$icon_url_index] = '';
$item[$css_class_index] .= ' ' . $icon_class_name;
$menu[$position] = $item;
return true;
}
}
return false;
}
该函数的使用范例:将 menu-icon-site 这个图标添加到别名为 example-menu 的菜单中
function create_example_menu() {
$menu_slug = 'example-menu';
add_menu_page(
'Example Menu',
'Example Menu',
'read',
$menu_slug,
'__return_null' //Will result in an empty page.
);
set_menu_icon_class($menu_slug, 'menu-icon-site');
});
add_action('admin_menu', 'create_example_menu');
参考资料:http://w-shadow.com/blog/2012/07/10/using-default-admin-menu-icons/
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
wpdaxue 一样出来么?
和别的图标一样,不会认错么?