[embed]ショートコードはdo_shortcode()では動作しない

2016年6月7日Web-log・ココログ関連,WordPress

WordPress4.4から、oEmbedで対応するブログの記事を簡単に埋め込める様になりました。URLを本文中に書くだけで、自動的に埋め込まれます。ショートコードで書きたい時は、URLを[embed]〜[/embed]で囲みます。

[フリー写真] パソコンで仕事中のプログラマーでアハ体験

このショートコードの書式を変更したくて、専用のWordPressプラグインを作りました。プラグインの中からdo_shortcode()を呼び出せば、そのショートコードを実行してくれます。ところが、次の書き方では、うまく動きません。

echo do_shortcode( '<a href="http://'%20.%20$url%20.%20'">' . $url . '</a>');

悩んだ挙句、次の投稿に行き当たりました。

global $wp_embed;
echo $wp_embed->run_shortcode( '<a href="http://'%20.%20$url%20.%20'">' . $url . '</a>' );

無事、うまく実行でき、埋め込みが成功しました。

[amazonjs asin="B00M939Y0I" locale="JP"]

Posted by お市のかた