web-dev-qa-db-fra.com

J'ai changé "Howdy" dans la barre d'administration du tableau de bord, mais lorsque je consulte le site, le message est toujours Howdy!

J'ai utilisé le code suivant pour remplacer "Howdy" dans la barre d'administration. C'est adorable. Cependant, lorsque je consulte le site alors que je suis connecté, Word Howdy réapparaît. Tant que je regarde le tableau de bord, pas de problème. Quand je regarde le site, beurk.

//* Change the Dashboard Welcome Message

add_filter('gettext', 'change_howdy', 10, 3);

function change_howdy($translated, $text, $domain) {

    if (!is_admin() || 'default' != $domain)
    return $translated;

    if (false !== strpos($translated, 'Howdy'))
    return str_replace('Howdy', 'Explore the Possibilities', $translated);

    return $translated;

}

Quelqu'un sait comment je fais en sorte que le changement s'applique aux deux vues de la barre d'administration?

3
WilliamAlexander

Je vois quelques problèmes ici.

Cette ligne

 if (!is_admin() || 'default' != $domain)
    return $translated;

renvoie le retour de Howdy inchangé si is_admin est false - ce qui est le cas si vous n'êtes pas dans le tableau de bord.

En outre, vous exécutez votre rappel de filtre sur gettext. Cela signifie qu'il sera exécuté chaque fois qu'un contenu internationalisé est utilisé, ce qui est très inefficace. Vous feriez mieux d'utiliser un filtre plus approprié, comme ci-dessous.

function change_howdy( $wp_admin_bar ) {
    $my_account = $wp_admin_bar->get_node( 'my-account' );
    $new_title   = str_replace( 'Howdy', 'Explore the Possibilities', $my_account->title );
    $wp_admin_bar->add_node( array(
        'id'    => 'my-account',
        'title' => $new_title,
    ) );
}

add_filter( 'admin_bar_menu', 'change_howdy', 25 );
5
vancoder