You can use this plugin in many ways depending on your needs, this examples only for learning purposes:
// Register the "test-1" shortcode, Works only in the administrators posts or outside the loop. Moody_Shortcodes_Manager::register( 'test-1', function() { if ( in_the_loop() ) { $post_author = get_post_field( 'post_author', get_post() ); if ( ! user_can( $post_author, 'administrator' ) ) { return false; } // end if } // dnd if return true; }, 'my_test_shortcode' ); // Register the "test-2" shortcode, Works only in pages or outside the loop. Moody_Shortcodes_Manager::register( 'test-2', function() { return ( ! in_the_loop() XOR get_post_type() === 'page' ); }, 'my_test_shortcode' ); // Register the "test-3" shortcode, Works only when bbPress plugin is activated. Moody_Shortcodes_Manager::register( 'test-3', function() { return function_exists( 'is_bbpress' ); }, 'my_test_shortcode' );
If you love this plugin star/fork it on the GitHub Repository.