Disable Shortcode usage for certain user roles

2019-08-01 14:47发布

问题:

I have a guest posting plugin on my Wordpress site and want to disable usage of shortcodes for certain users roles (subscribers for example). I need this for security reasons mostly.

回答1:

Assume that you have shortcode,

function myshortcode(){

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

}

add_shortcode('myshortcode','myshortcode');


回答2:

You can use the strip_shortcodes() function, you can use it as a filter to strip shortcodes from your desired content:

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

or

echo strip_shortcodes( $my_customly_created_content );

in where you want to show the content.