Rename Buddypress Profile Tab

时间:2012-07-06 作者:Androliyah

如果不使用语言文件,如果要重命名配置文件选项卡,我将转到哪个文件?例如,我不想让标签上写着“活动”,而是想让它写着“我的活动”。我会让它说“我的小组”等,而不是“小组”。谢谢

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

看看来源,你已经知道了。:)

我没有,但我打赌有一段代码是这样的:

_e( \'Activity\', \'buddypress\' );
…或…

__( \'Activity\', \'buddypress\' );
遵循函数,它们是函数的包装器translate() 在里面wp-includes/l10n.php:

/**
 * Retrieves the translation of $text. If there is no translation, or
 * the domain isn\'t loaded, the original text is returned.
 *
 * @see __() Don\'t use translate() directly, use __()
 * @since 2.2.0
 * @uses apply_filters() Calls \'gettext\' on domain translated text
 *      with the untranslated text as second parameter.
 *
 * @param string $text Text to translate.
 * @param string $domain Domain to retrieve the translated text.
 * @return string Translated text
 */
function translate( $text, $domain = \'default\' ) {
    $translations = &get_translations_for_domain( $domain );
    return apply_filters( \'gettext\', $translations->translate( $text ), $text, $domain );
}
您会看到一个过滤器:\'gettext\' 有三个参数(或参数)。现在可以使用过滤器更改输出
将此添加到主题的functions.php 或插件:

add_filter( 
    \'gettext\', // filter name
    \'wpse_57673_change_buddypress_profile_tabs\', // name of your custom function
    10, // priority
    3 // number of arguments you want to get
);
现在我们需要自定义函数,这非常简单:

function wpse_57673_change_buddypress_profile_tabs( $translated, $original_text, $domain )
{
    if ( \'buddypress\' !== $domain )
    {
        return $translated; // not your text
    }

    // find the text to change
    switch ( $original_text )
    {
        case \'Activity\':
            return \'My Activity\';

        case \'Groups\':
            return \'My Groups\';

        default:
            return $translated;
    }
}

SO网友:J.D.

我仔细研究了一下代码,找到了“正确的方法”:

function wpse_57673_change_bp_profile_tabs() {

    // Rename a primary nav item.
    buddypress()->members->nav->edit_nav(
        array( \'name\' => \'My Activity\' )
        , \'activity\'
    );

    // Rename a secondary nav item.
    buddypress()->members->nav->edit_nav(
        array( \'name\' => \'Saved Posts\' )
        , \'favorites\'
        , \'activity\'
    );
}
add_action( \'bp_setup_nav\', \'wpse_57673_change_profile_tabs\', 20 );
这比\'gettext\', 因为\'gettext\' 过滤器经常被调用,因此挂接它会降低性能。

结束

相关推荐

BuddyPress:我如何让摘录的组描述更短?

我在buddypress中设置了一个主题,我想在那里为我的团队设置一个挑逗部分。它工作正常,但我有一个问题,缩短组描述。。。我是这样使用它的:<p><a href=\"<?php bp_group_permalink() ?>\"><?php bp_group_name() ?></a></p> <p><?php bp_group_description_excerpt() ?></p>&#