WordPress Version: 6.5
/**
* Adds the "Site Name" menu.
*
* @since 3.3.0
*
* @param WP_Admin_Bar $wp_admin_bar The WP_Admin_Bar instance.
*/
function wp_admin_bar_site_menu($wp_admin_bar)
{
// Don't show for logged out users.
if (!is_user_logged_in()) {
return;
}
// Show only when the user is a member of this site, or they're a super admin.
if (!is_user_member_of_blog() && !current_user_can('manage_network')) {
return;
}
$blogname = get_bloginfo('name');
if (!$blogname) {
$blogname = preg_replace('#^(https?://)?(www.)?#', '', get_home_url());
}
if (is_network_admin()) {
/* translators: %s: Site title. */
$blogname = sprintf(__('Network Admin: %s'), esc_html(get_network()->site_name));
} elseif (is_user_admin()) {
/* translators: %s: Site title. */
$blogname = sprintf(__('User Dashboard: %s'), esc_html(get_network()->site_name));
}
$title = wp_html_excerpt($blogname, 40, '…');
$wp_admin_bar->add_node(array('id' => 'site-name', 'title' => $title, 'href' => (is_admin() || !current_user_can('read')) ? home_url('/') : admin_url(), 'meta' => array('menu_title' => $title)));
// Create submenu items.
if (is_admin()) {
// Add an option to visit the site.
$wp_admin_bar->add_node(array('parent' => 'site-name', 'id' => 'view-site', 'title' => __('Visit Site'), 'href' => home_url('/')));
if (is_blog_admin() && is_multisite() && current_user_can('manage_sites')) {
$wp_admin_bar->add_node(array('parent' => 'site-name', 'id' => 'edit-site', 'title' => __('Edit Site'), 'href' => network_admin_url('site-info.php?id=' . get_current_blog_id())));
}
} elseif (current_user_can('read')) {
// We're on the front end, link to the Dashboard.
$wp_admin_bar->add_node(array('parent' => 'site-name', 'id' => 'dashboard', 'title' => __('Dashboard'), 'href' => admin_url()));
// Add the appearance submenu items.
wp_admin_bar_appearance_menu($wp_admin_bar);
// Add a Plugins link.
if (current_user_can('activate_plugins')) {
$wp_admin_bar->add_node(array('parent' => 'site-name', 'id' => 'plugins', 'title' => __('Plugins'), 'href' => admin_url('plugins.php')));
}
}
}