投稿を返すAJAXリクエストがあります。 post_content
には、Twitter、YouTube、TED、およびデフォルトのVanilla WordPressインストールでoEmbedプロバイダとして登録されているその他のプラットフォームへのリンクがあります。現時点では、WordPressのoEmbedハンドラはそれらを登録せず、単純なリンクを表示し、それ以外は何も表示しません。
OEmbedをサポートしているAJAXを介してコンテンツを取得する方法を教えてください。
実際、これは非常に簡単でした - 足りないものがわかっているとき:グローバル$wp_embed
オブジェクトの現在の投稿ID。理由は単純です。oEmbedsは投稿メタデータとしてキャッシュされるので、IDを知らないとMarkUpを取得してコンテンツ内で置き換えることはできません。
// grab a post from the database
/** @var \WP_Embed $wp_embed */
global $wp_embed;
/** @var \WP_Post $post; */
// Add the fetched posts ID and add it to the global object
$wp_embed->post_ID = $post->ID;
// Execute the [embed] shortcode
$wp_embed->run_shortcode( $post->post_content );
// Execute the oEmbed handlers for plain links on the own line
$wp_embed->autoembed( $post->post_content );
それでおしまい。
oEmbedとキャッシングに関するさらに詳しい情報の情報は、@ birgireの関連回答にあります。