Welcome, Old Sport!

自定义admin bar顶部用户菜单选项(wp)

by ilikecss ON 2014/11/12 2773

wordpress自定义admin bar顶部用户菜单选项”工作需要第一次接触定制wordpress后台模板相关的工作,wp默认只有“用户名”,“昵称”,“编辑个人资料”,“登出”这些栏目。按要求定制顶部管理栏用户菜单,增加或删除原本的菜单栏目。网上搜索了许多教程,在这里把自己的实践跟大家分享一下。

add action

钩子函数指定某特殊的动作

add nodes/group

此功能增加了一个新的节点/组,组允许您将多个工具栏项目连成一片的工具栏菜单的不同的部分。节点可以是父级给其它节点,它创建下拉菜单。添加群组时,你实际上是在增加一组节点。参考下面官方给出的代码:

add_action( 'admin_bar_menu', 'add_nodes_and_groups_to_toolbar', 999 );

function add_nodes_and_groups_to_toolbar( $wp_admin_bar ) {

	// add a parent item
	$args = array(
		'id'    => 'parent_node',
		'title' => 'parent node'
	);
	$wp_admin_bar->add_node( $args );

	// add a child item to our parent item
	$args = array(
		'id'     => 'child_node',
		'title'  => 'child node',
		'parent' => 'parent_node'
	);
	$wp_admin_bar->add_node( $args );

	// add a group node with a class "first-toolbar-group"
	$args = array(
		'id'     => 'first_group',
		'parent' => 'parent_node',
		'meta'   => array( 'class' => 'first-toolbar-group' )
	);
	$wp_admin_bar->add_group( $args );

	// add an item to our group item
	$args = array(
		'id'     => 'first_grouped_node',
		'title'  => 'first group node',
		'parent' => 'first_group'
	);
	$wp_admin_bar->add_node( $args );

	// add another child item to our parent item (not to our first group)
	$args = array(
		'id'     => 'another_child_node',
		'title'  => 'another child node',
		'parent' => 'parent_node'
	);
	$wp_admin_bar->add_node( $args );

}

从以上代码可以看出我们通过添加action对工具栏(toolbar)进行节点的各种操作。而我们今天操作的对象是admin bar用户菜单信息。(action的操作都是对象ID, 我们可以通过firebug查看所要操作对象的ID)

<ul id="wp-admin-bar-user-actions" class="ab-submenu">父级id
    <li id="wp-admin-bar-user-info"></li>所要操作的对象id
    <li id="wp-admin-bar-edit-profile"></li>
    <li id="wp-admin-bar-logout"></li>
</ul>

以上代码我加入了注释,标注我们这次要操作的对象。下面一起来看钩子函数的操作过程:


add_action( 'admin_bar_menu', 'add_nodes_and_groups_to_secondary_groups', 999 );
function add_nodes_and_groups_to_secondary_groups( $wp_admin_bar ) {
// add another child item to our parent item (not to our first group)
	$args = array(
		'id'     => 'user-info',操作的对象id,可重新自定义
		'title'  => 'My Courses',新的菜单标题名称
		'parent' => 'user-actions',操作对象的父级id
		'href' => get_home_url( $blog_id, 'account/subscribe' ),指定链接地址
	);
	$wp_admin_bar->add_node( $args );
}

注意: 对象id重新设置表示添加一栏新的菜单标题。
钩子函数: 在你不确定要添加的对象是组还是节点时,我们通常可以使用“add_nodes_and_groups” to “secondary_groups”这次要操作组的名称

效果图

功能参考:

1. http://codex.wordpress.org/Function_Reference/add_group

对于想自定义用户中心后台的朋友可以自己尝试此教程内容,通过以上方法融会贯通可以定制你自己的用户中心。

5条评论
  1. #1

    黑木耳露说道:

    wp折腾好了 功能最强大的

  2. #2

    在线教育说道:

    :razz: :razz: 谢谢啦啦 哈哈哈

  3. #3

    在线教育说道:

    :razz: 就这样爱着你 哈哈

  4. :razz: :razz: 楼主 么么哒




TOP