禁用某些用户角色的短代码使用

问题描述:

我在我的Wordpress网站上有一个访客发布插件,并且想要禁用特定用户角色(例如订户)的短代码使用。我大多需要安全原因。禁用某些用户角色的短代码使用

+0

澄清:你想阻止这些用户插入他们写的帖子/页面的简码吗?或者,您是否想要在呈现他们查看的帖子/页面时防止使用这些简码? –

+0

我不太确定..我认为第二 - 防止短码解压缩。因此,用户可以编写shortcode或类似[some_text]的简码,但不会执行。所以简码就像文本一样。 – Ted

假设您有简码,

function myshortcode(){ 

$user = wp_get_current_user(); 
if (!in_array('author', (array) $user->roles)) { 
    //Run shortcode 
} 

} 

add_shortcode('myshortcode','myshortcode'); 
+0

对不起,如果我只是误解你,但你是否确定这是我需要的正确的代码?因为通过看它,它似乎不是。 – Ted

+0

然后什么活动想要做? –

+0

是的,因为我了解这个检查用户角色,如果它不在角色然后运行 –

可以使用strip_shortcodes()功能,你可以使用它作为一个过滤器,以你想要的内容剥离简码:

function example_remove_shortcode($content) { 
    $content = strip_shortcodes($content); 
    return $content; 
} 
add_filter('the_content', 'example_remove_shortcode'); 

echo strip_shortcodes($my_customly_created_content); 

您想在哪里显示内容。

+0

如果将第二行包含在检查当前用户角色的条件中,那么这可能会回答OP的问题。 – Dre

+0

@Dre没错,但我不太确定他想在哪里使用它。我会编辑答案 – Amin