Markup für Post erhalten, ohne in die Vorlage geladen zu werden

Ich schreibe ein Shortcode-Plugin, das Posts nach bestimmten Parametern anzeigt, die an den Shortcode übergeben wurden. Ich habe die wp_query , um die Posts zu bekommen, und jetzt versuche ich, das Markup für die Posts entsprechend den Template-Dateien des Theme zu bekommen.

Im Wesentlichen ist get_template_part genau das, was ich will … außer dass es das Markup direkt in die Vorlage lädt. Ich möchte das Markup für den Inhalt erhalten, eine kleine Nachbearbeitung durchführen und dann das Markup für den Shortcode zurückgeben. Im Wesentlichen,

 $listings = new WP_Query(...); while ( have_posts() ) { $markup .= get_template_part('content', $post->post_type); } return $markup 

Außer dies ist natürlich nicht die Art, wie get_template_part funktioniert. Wie bekomme ich das Markup für einen Post, ohne das Markup in die Seite zu rendern?

Solutions Collecting From Web of "Markup für Post erhalten, ohne in die Vorlage geladen zu werden"

Ich konnte keinen WordPress-Weg finden, um dies zu tun, und wenn ich mir die WP-Quelle ansehe, sieht es so aus, als ob dies wahrscheinlich nie wirklich möglich sein wird. Allerdings konnte ich eine Lösung mit Hilfe von Vanille-PHP erhalten, indem ich die Standardausgabe in einen Puffer umleite und den Puffer in eine Variable lade.

 $listings = new WP_Query(...); ob_start(); while ( have_posts() ) { get_template_part('content', $post->post_type); } $markup = ob_get_contents(); ob_end_clean(); return $markup 

Wenn Sie nur nach dem Inhalt eines get_the_content() suchen, bevor dieser in eine Vorlage geladen wird, suchen Sie wahrscheinlich nach get_the_content() .