禁用某些用户角色的简码使用
Posted
技术标签:
【中文标题】禁用某些用户角色的简码使用【英文标题】:Disable Shortcode usage for certain user roles 【发布时间】:2017-04-20 03:26:32 【问题描述】:我在我的 Wordpress 网站上有一个访客发帖插件,并且想要禁用某些用户角色(例如订阅者)的短代码使用。出于安全原因,我需要这个。
【问题讨论】:
澄清一下:你想阻止这些用户在他们写的帖子/页面中插入简码吗?或者您想在呈现他们查看的帖子/页面时阻止使用这些短代码? 我不太确定.. 我认为第二个 - 防止提取短代码。所以用户可以编写短代码或类似 [some_text] 的短代码,但它不会被执行。所以短代码就像文本一样。 【参考方案1】:假设您有短代码,
function myshortcode()
$user = wp_get_current_user();
if ( !in_array( 'author', (array) $user->roles ) )
//Run shortcode
add_shortcode('myshortcode','myshortcode');
【讨论】:
对不起,如果我只是误解了你,但你确定这是我需要的正确代码吗?因为看起来好像不是。 那到底想做什么?? 是的,因为我理解这个检查用户角色,如果它不在角色中然后运行 我想禁用特定用户角色的所有简码。如果用户属于“订阅者”类别,他将无法使用任何简码 - 这是我想要实现的目标。【参考方案2】:您可以使用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 );
在您要显示内容的位置。
【讨论】:
如果您将第二行包装在检查当前用户角色的条件中,那么这可能会回答 OP 的问题。 @Dre 没错,但我不太确定他想在哪里使用它。我会编辑答案以上是关于禁用某些用户角色的简码使用的主要内容,如果未能解决你的问题,请参考以下文章