web-dev-qa-db-ja.com

ダッシュボードの管理バーの「ハウディ」を変更しましたが、サイトを表示しても「ハウディ」と表示されます。

私は以下のコードを使って管理バーの "Howdy"を置き換えました。これは素敵です。しかし、ログインしている間にサイトを表示すると、Word Howdyが再び表示されます。ダッシュボードを表示している限り、どうでもいいです。このサイトを閲覧していると、.

//* 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;

}

管理バーの両方のビューにその変更を適用する方法を知っている人はいますか?

3

ここにいくつか問題があります。

この行

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

is_adminがfalseの場合、ハウディを変更せずに元に戻します - ダッシュボードにいない場合はそうです。

また、あなたはgettextであなたのフィルタコールバックを実行しています。これは、国際化されたコンテンツが使用されるたびに実行されることを意味します。これは非常に非効率的です。以下のように、より適切なフィルタを使用することをお勧めします。

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