do_shortcode() within Admin Page

I’m using a few plugins that have shortcodes … however, instead of creating a public page for the content, I’ve created some new pages within the admin using add_menu_page and I need to know how to utilize do_shortcode() within this context.

As it stands, all the function does it spit out the string. I’m assuming it’s because the shortcode API isn’t available within an admin page.

How do I get around this? There is no documentation that I can find that explains how to utilize shortcodes within the WP Admin… or if it’s even possible.


Specifically I’m trying to utilize WooCommerce shortcodes within the WP Admin. I hate the fact that plugins don’t utilize the WP Backend for account/user management.

2

Instead of calling do_shortcode() just call the function associated with the shortcode.

Example

There is a shortcode named [example] and a function registered as shortcode handler:

function example_shortcode( $atts = array(), $content="" )
{
    extract( 
            shortcode_atts( 
            array (
            'before' => '',
            'after' => '',
            ), 
            $atts 
       )
   );

    return $before . $content . $after;
}
add_shortcode( 'example', 'example_shortcode' );

In your admin page you just call the function:

echo example_shortcode( 
    array ( 'before' => 'This ', 'after' => '!' ), 
    'works' 
);

Output: This works!.

Faster and more reliable than do_shortcode().

Leave a Comment