与Instagram的do_shortcode不起作用 - Wordpress

I'm trying to insert an embed post of Instagram via code using do_shortcode function. This is the shortcode example that Instagram gives on the embed documentation:

[instagram url=https://www.instagram.com/p/bNd86MSFv6/ hidecaption=true width=320]

So I'm trying to call it like this:

echo do_shortcode('[instagram url=https://www.instagram.com/p/bNd86MSFv6/ hidecaption=true width=320]'); 

The result I'm having is like I was using only the echo function, the shortcode comes as plain text on the browser.

The page that I'm editing is the single.php. And I did a test using a contact form 7 shortcode, it works normally with do_shortcode.

Am I missing something?

Are you trying to insert this code in your pages/posts, or a template file?

For pages/posts, all you need is:

[instagram url="https://www.instagram.com/p/bNd86MSFv6/" hidecaption=true width=320]

For template files:

echo do_shortcode('[instagram url="https://www.instagram.com/p/bNd86MSFv6/" hidecaption=true width=320]')

Since you are not using a plugin, the shortcode has not been defined. You can either use a plugin ( https://wordpress.org/plugins/simple-instagram-embed/ ) or define the shortcode using Mark's suggestion.

Have you created the code for [instagram]? Please post this code for us.

Put this in your functions.php file:

function my_awesome_shortcode( $atts, $content = null ) {
   echo "This is my shortcode";
}

add_shortcode( 'awesome', 'my_awesome_shortcode' );

now put:

echo do_shortcode('[my_awesome_shortcode]');

into your single .php file. What is the result? if you get

This is my shortcode

Then it is working, you can use this template to build your instagram one.