用户角色短代码

时间:2016-09-20 11:48:57

标签: php wordpress shortcode user-roles

我使用以下代码创建短代码并检查用户角色:

function check_user_role( $atts, $content = null ) {
        extract( shortcode_atts( array(
                'role' => 'role' ), $atts ) );

        if( current_user_can( $role ) ) {
                return $content;
        }
}
add_shortcode( 'user_role', 'check_user_role' );

然后添加以下短代码以仅向所选角色显示内容 - 在本例中为“订阅者”

[user_role role="subscriber"]content[/user_role]

效果很好,但现在我想在短代码中添加“作者”,以便向“订阅者”和“作者”显示内容

我已经尝试过显而易见的事了:

[user_role role="subscriber, author"]content[/user_role]

但这似乎不起作用。

我是否需要在自己的功能中修改任何内容?

2 个答案:

答案 0 :(得分:2)

你必须尝试一下,获得更多帮助

https://wordpress.stackexchange.com/questions/131814/if-current-user-is-admin-or-editor

limit_choices_to

答案 1 :(得分:0)

对我来说,有效的代码如下:

function check_user_role( $atts, $content = null ) {
        extract( shortcode_atts( array(
                'role' => 'role' ), $atts ) );

        $user = wp_get_current_user();
        $allowed_roles = explode(',', $role);
        if( array_intersect($allowed_roles, $user->roles ) ) {
                return $content;
        }
}
add_shortcode( 'user_role', 'check_user_role' );

我在Snippets plugin的新代码段中添加了这段代码。