0

I have managed to make the admin bar "Visit site" to open in a new window. But in a multisite setup there is a menu item called "My sites" which displays all your sites with a link to "Dashboard" and "Visit site". How do I make this "Visit site" button open in a new link?

Thank you!

EDIT: Here is the solution for the drop-down menu "My sites":

add_action( 'admin_bar_menu', 'remove_nodes_mysites', 999 );
function remove_nodes_mysites( $bar )
{
    $sites = get_blogs_of_user( get_current_user_id() );
    foreach ( $sites as $site )
    {
             // Open Visit Site in new window/tab
             $visit_site_node = $bar->get_node( "blog-{$site->userblog_id}-v" ); // Visit Site
             $visit_site_node->meta['target'] = '_blank';
         $bar->add_node($visit_site_node);
    }
}
4
  • Maybe you could share exactly how you managed to do this on non-multisite setup, so others may give you answers starting from there to make it work with multisite.
    – Iceable
    May 22, 2018 at 7:55
  • I think you misunderstood. Both are on the same multisite, it is just that there are two "Visit site", one in the top admin bar (which I have been able to solve), and one under the "My sites" menu. Check here: codex.wordpress.org/Dashboard_My_Sites_Screen
    – joq3
    May 22, 2018 at 8:17
  • I misunderstood this indeed. You could still share how you managed to solve this first part though, it can be useful as a starting point to answer your question.
    – Iceable
    May 22, 2018 at 8:32
  • 1
    Just added that to my first post!
    – joq3
    May 22, 2018 at 9:28

1 Answer 1

1

This should do it (put it in a network activated plugin):

add_filter( 'myblogs_blog_actions', 'my_sites_visit_site_target_blank', 10, 2 );

function my_sites_visit_site_target_blank( $actions, $user_blog ) {
    $to_replace = ">" . __( 'Visit' ) . '</a>';
    $to_replace_with = " target='_blank' >" . __( 'Visit' ) . '</a>';
    return str_replace( $to_replace, $to_replace_with, $actions );
}
4
  • Sorry, this doesn't work. I think what this does is what I posted in my first post. It opens the Visit site (in the admin top bar drop down). What I am looking for is the "Visit" button/link inside the menu "My sites", check here: codex.wordpress.org/Dashboard_My_Sites_Screen
    – joq3
    May 22, 2018 at 9:31
  • @joq3 Ah, sorry, I misunderstood. Now I changed my answer.
    – Nikolay
    May 22, 2018 at 9:54
  • 1
    Fantastic! Really appreciate it!
    – joq3
    May 22, 2018 at 10:17
  • @joq3 Cool, no problem :)
    – Nikolay
    May 22, 2018 at 10:29

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.