为管理栏节点设置锚定目标

时间:2019-04-15 作者:Jarod Thornton

我正在使用Open Admin bar "Visit site" in a new window 这在我指定的节点上非常有效。

我需要对此进行调整,以包括动态创建的所有子节点,但遵循以下逻辑:

node
 node_1
  node_1_view
  node_1_another
  node_1_andanother
 node_2
  node_2_view
  etc
 node_3
 etc
这将按照相同的顺序进行添加。

How can I modify the code to set the target for all of these node?

1 个回复
SO网友:Antti Koskinen

也许你可以$wp_admin_bar->get_nodes(); 获取所有工具栏节点,然后循环它们并根据需要修改正确的节点。沿着这些路线,

add_action( \'admin_bar_menu\', \'customize_my_wp_admin_bar\', 80 );
function customize_my_wp_admin_bar( $wp_admin_bar ) {
  $all_toolbar_nodes = $wp_admin_bar->get_nodes();

  if ( ! $all_toolbar_nodes ) {
    return;
  }

  foreach ( $all_toolbar_nodes as $node ) {
    // Skip nodes you don\'t want to edit
    if ( ! $some_logic ) {
      continue;
    }
    //Change target
    $node->meta[\'target\'] = \'_blank\';
    //Update Node.
    $wp_admin_bar->add_node($node);    
  }

}
我不记得有什么属性$node 是的,但我想parent 可以在中使用的属性if 语句跳过错误的语句。

相关推荐

ADD_TIME_SUPPORT(‘admin-bar’)导致致命错误

我正在努力学习更多关于主题开发的知识,所以我创建了自己的主题,除了添加functions.php 并尝试用一些简单的方法进行更新,如:<?php add_theme_support(\'admin-bar\', array(\'menus\')); ?> 我明白了Server 500 ERROR 我无法访问Wordpress的任何部分,甚至连仪表板都无法访问。但一旦我删除functions.php 和刷新页面我的Wordpress又回来了,工作顺利。有什么神秘的fu