如何为特定用户角色使用getText

时间:2017-11-29 作者:Asifur Rahman

我正在尝试替换发布按钮文本,以仅提交特定用户角色的审阅。但我找不到任何可以指定当前用户角色并应用筛选器的内容。这是我的代码,它不起作用。

 add_filter( \'gettext\', \'change_publish_button\', 10, 2 );
function change_publish_button( $translation, $text ) {
if( !current_user_can(\'administrator\') )  {
if ( $text == \'Publish\' )
    return \'Submit for review\';
};
return $translation;
}
我还尝试使用
    $current_user = wp_get_current_user();
if (in_array(\'level-1-contributor\', $current_user->roles))
它也不起作用。用我的一点知识,我可以理解调用功能。php需要这样的代码-
add_action(\'init\',\'do_stuff\');
但我不明白我怎样才能实现我想要的。需要你的帮助。

为试图发表愚蠢评论的人编辑-gettext用于更改wordpress仪表板文本,而无需硬编码。可以将gettext用作函数。php函数或插件中。仪表板中的Wordpress发布按钮-这是通用的帖子/页面/自定义帖子类型发布按钮。所以我想要的是——我想使用gettext过滤器,这样我就可以将发布按钮文本替换为其他文本,而无需编辑wordpress核心文件。我可以做到这一点。但我试图使此功能仅适用于特定的用户角色。假设“作者”。我尝试添加

if (current_user_can(\'author\'))
但这给了我错误。我无法调用在gettext筛选器中提供用户信息的任何内容。我如何绕过它或以不同的方式来实现它,从而实现我想要的?

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

你尝试过的每件事都应该做得很好,我不知道这为什么不起作用,

我正在修改您的代码以检查帖子类型,检查它是否可以帮助您,

function rename_publish_button_to_review( $translation, $text ) {

    if( !current_user_can(\'administrator\') && \'post\' == get_post_type() )  {

        if( \'Publish\' == $text ) {
            return "Submit for review";
        }
    }
    return $translation;
}
add_filter( \'gettext\', \'rename_publish_button_to_review\', 10, 2 );
另一方面,尝试在未指定角色时查看此函数是否工作。

WILL THIS WORK ?

function rename_publish_button_to_review( $translation, $text ) {

    if( \'Publish\' == $text ) {
        return "Submit for review";
    }
    return $translation;
}

function wpse_53371_bulk_actions()
{
    if ( ! is_admin() )
        return;

    if ( ! current_user_can( \'administrator\' ) )
    {
        add_filter( \'gettext\', \'rename_publish_button_to_review\', 10, 2 )
    }
}
add_action( \'wp_loaded\', \'wpse_53371_bulk_actions\' );

结束

相关推荐

About Wordpress capabilities

我知道WordPress是博客引擎的最佳选择,通过一些插件,如Advance Custom Field,WP可以成为一个很棒的CMS。但它仍然有利于出版商将内容推送给用户。现在我的处境相当严峻。我的朋友想使用WP作为一个引擎,用户可以贡献他们的帖子,其他人可以查看它。是否可以使用WP我可以创建自定义主题(&a);插件可以做到这一点,但当用户在插件上放置很多东西(页面和帖子)时,它对性能有好处吗?