将博客语言添加到管理栏中我的站点列表中的博客名称

时间:2014-02-05 作者:Drivingralle

我想将每个博客的语言添加到管理栏中我的网站列表中的博客名中。

结果应如下所示:enter image description here

要将语言添加到(1)中的网站名称,我使用以下代码:

add_action(\'wp_before_admin_bar_render\', \'add_language_to_blog_name\');
function add_language_to_blog_name( $wp_admin_bar ) {

    global $wp_admin_bar;

    $wp_admin_bar->add_menu( array(
        \'id\'    => \'site-name\',
        \'title\' => get_bloginfo( \'name\' ) . \' | \' . get_bloginfo( \'language\' ),
    ) );

}
如何编辑我的网站列表中的博客名?

1 个回复
最合适的回答,由SO网友:fischi 整理而成

这有点棘手,我不知道是否有最好的解决方案。然而,这是可行的。

诀窍是,我和你用同样的钩子,wp_before_admin_bar_render. 在那里,我获取所有元素,并检查它们是否有父元素my-sites-list.

如果他们这样做了,我会切换到博客,获取当前博客的语言,创建标题和call restore_current_blog().

之后,我创建了一个新的管理栏项目,其中包含除新标题以外的所有原始信息,删除旧标题,然后插入新标题。

问题/关注点到目前为止,我还不知道是否有办法在不切换到博客语言的情况下获得博客语言

功能

function f711_tweaked_admin_bar() {

    global $wp_admin_bar;
    $elements = $wp_admin_bar->get_nodes();
    foreach( $elements as $element ) {

        if ( $element->parent == \'my-sites-list\' ) {

            // reduce the adminbar Id to the blog ID
            $idinteger = str_replace( \'blog-\', \'\', $element->id );

            // Switch to the Blog, get the language option. If empty, it\'s English
            switch_to_blog( $idinteger );
                if ( get_option( \'WPLANG\' ) != "" ) {
                    $language = get_option( \'WPLANG\' );
                } else {
                    $language = \'en_EN\';
                }
                //set the new title for the Admin Menu
                $newtitle = $element->title . \' - \' . $language;
            restore_current_blog();

            // define new menu element
            $args = array(
                \'title\'     => $newtitle,
                \'id\'        => $element->id,
                \'parent\'    => $element->parent,
                \'href\'      => $element->href,
            );
            // remove the old one
            $wp_admin_bar->remove_node( $element->id );
            // add the new one right afterwards.
            $wp_admin_bar->add_node( $args );

        }

    }

}
add_action( \'wp_before_admin_bar_render\', \'f711_tweaked_admin_bar\' ); 

结束

相关推荐

如何在必用插件中使用is_MultiSite()?

我希望此代码在mu plugins文件夹中的插件中执行。在函数中执行时。php一切正常,但当我在mu插件中尝试它时,会创建一个空白页面。if (( is_multisite() && !current_user_can(\'manage_network\') ) || ( !is_multisite() && !current_user_can(\'create_users\'))) { add_action( \'init\', create_functio