WordPress管理栏不显示两个自定义下拉菜单

时间:2014-02-06 21:17:47

标签: php wordpress

我在WP管理栏中显示两个自定义下拉菜单时遇到问题。我想要的是第一个下拉列表显示每个页面的后端(编辑部分)链接,另一个下拉列表显示每个页面的前端链接。现在,只显示被调用的最后一个foreach语句。任何建议都非常感谢。

function admin_bar_link($admin_bar) {

    if ( !is_super_admin() || !is_admin_bar_showing() )
    return;

$pages = get_pages();
$nurs = get_site_url();

$admin_bar->add_menu(array(
    'id' => 'this',
    'title' => __($nurs),
    'href' => $nurs
));

$admin_bar->add_menu(array(
    'id' => 'edit_pages_links',
    'title' => __('Edit Pages'),
    'href' => false
));

$admin_bar->add_menu(array(
    'id' => 'view_pages_links',
    'title' => __('View Pages'),
    'href' => false
));     

foreach ( $pages as $page ) {
    $title = $page->post_title;
    $url = get_permalink ( $page->ID )  . 'wp-admin/post.php?post=' . $page->ID . '&action=edit'; //edit post url   

         $admin_bar->add_menu (array( 
        'title' => $title,
        'href' => $url,
        'parent' => 'edit_pages_links'
        )
    );

}//end foreach  

foreach ( $pages as $page ) {
    $title = $page->post_title;
    $url = get_permalink ( $page->ID ) . '?p='. $page->ID;

        $admin_bar->add_menu ( array (
            'title' => $title,
            'href' => $url,
            'parent' => 'view_pages_links'
            )
        );                          
 }//end foreach 

}
add_action('admin_bar_menu', 'admin_bar_link');

1 个答案:

答案 0 :(得分:0)

首先,您的函数应该接受$ admin_bar变量,如下所示:
function admin_bar_link($admin_bar)

,您不再需要global $wp_admin_bar了。然后替换这些:

$wp_admin_bar->add_menu

用这个

$admin_bar->add_menu

然后菜单应显示在管理栏上。