it-swarm.com.de

Ändern Sie den Link von "Howdy" oben rechts

Ich möchte ändern, wohin der Link "Howdy" führt, wenn Sie darauf klicken.

Ich habe eine Website mit buddypress und anstatt Benutzer auf ihre Profilseite zu bringen, möchte ich sie auf ihre Registerkarte "Aktivität" bringen.

Wie kann ich den Link ändern?

Danke, Kat

4
kat_indo

Es ist nicht gut dokumentiert, aber die Methoden add_node und add_menu der Klasse WP_Admin_Bar können nicht nur zum Erstellen neuer Menüs oder Knoten verwendet werden, sondern auch zum Aktualisieren eines vorhandenen Menüs oder Knotens.

Also habe ich den Code ausfindig gemacht, den WordPress zum Erstellen dieses Elements in der Admin-Leiste verwendet, repliziert, den Howdy-Text angepasst und einen Beispiellink für Google verwendet. Nehmen Sie einfach Ihre eigenen Anpassungen am Beispielcode vor.

Beispielcode:
Aktualisieren Sie das Benutzerkonto-Menü in der Administratorleiste

function wpse_98066_before_admin_bar_render() {

    global $wp_admin_bar;

    if( !method_exists( $wp_admin_bar, 'add_menu' ) )
        return;

    $user_id      = get_current_user_id();
    $current_user = wp_get_current_user();
    $my_url       = 'http://www.google.com';

    if ( ! $user_id )
        return;

    $avatar = get_avatar( $user_id, 16 );
    $howdy  = sprintf( __('Hey, Nice to see you again, %1$s'), $current_user->display_name );
    $class  = empty( $avatar ) ? '' : 'with-avatar';

    $wp_admin_bar->add_menu( array(
        'id'        => 'my-account',
        'parent'    => 'top-secondary',
        'title'     => $howdy . $avatar,
        'href'      => $my_url,
        'meta'      => array(
            'class'     => $class,
            'title'     => __('My Account'),
        ),
    ) );
}
add_action( 'wp_before_admin_bar_render', 'wpse_98066_before_admin_bar_render' );

Ich hoffe das hilft, viel Spaß. :)

7
t31os

Hier ist eine einfachere und übersichtlichere Methode: Rufen Sie den benötigten Knoten auf, verwenden Sie das benötigte Teil und ersetzen Sie das, was Sie aktualisieren möchten

function np_replace_howdy($wp_admin_bar){

//New text to replace Howdy
$new_text = 'Welcome';
$my_url       = 'http://www.google.com';

//Call up the 'my-account' menu node for current values.
$my_account = $wp_admin_bar->get_node('my-account');

//Replace the 'Howdy' with new text with string replace
$new_title = str_replace('Howdy', $new_text, $my_account->title);

//Rebuild the menu using the old node values and the new title.
$wp_admin_bar->add_menu(array(
    'id'     => $my_account->id,
    'parent' => $my_account->parent,
    'title'  => $new_title,
    'href'   => $my_url,
    'group'   => $my_account->group,
    'meta'   => array(
        'class' => $my_account->meta['class'],
        'title' => $my_account->meta['title'],
    ),
 ));
}

add_action('admin_bar_menu', 'np_replace_howdy', 999);
0
David Labbe