Wie verwendet man oEmbeds für Post-Inhalte während AJAX-Anfragen?

Ich habe eine AJAX-Anfrage, die einen Beitrag zurückgibt. Der post_content enthält Links zu Twitter, YouTube, TED und anderen Plattformen, die als oEmbed-Anbieter in einer standardmäßigen WordPress-Standardinstallation registriert sind. Der WordPress-oEmbed-Handler registriert sie jetzt nicht und zeigt einfache Links und nichts anderes an.

Wie kann ich Inhalte über AJAX mit oEmbed-Unterstützung abrufen?

Solutions Collecting From Web of "Wie verwendet man oEmbeds für Post-Inhalte während AJAX-Anfragen?"

Eigentlich war das ganz einfach – wenn Sie wissen, was fehlt: Die aktuelle Post-ID für das globale $wp_embed Objekt, damit es weiß, worauf es sich bezieht. Der Grund ist einfach: oEmbeds werden als Post-Metadaten zwischengespeichert. Ohne die ID zu kennen, kann das MarkUp nicht abgerufen und im Inhalt ersetzt werden.

 // 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 ); 

Das ist es.

Weitere Informationen zu oEmbed und Caching finden Sie in einer ähnlichen Antwort von @birgire.