gform_after_submission Inhalt erscheint unmittelbar nach , nicht in post body

Ich habe die folgende function, die Formularfelder (IDs 13 und 18) aus einem Gravitationsformular (ID 18) erfolgreich als Parameter in wp_query verwendet. Dies zeigt eine Liste von Beiträgen mit bestimmten Taxonomiebegriffen an, die mit denen im Formular übereinstimmen:

add_action("gform_after_submission_18", "set_post_content", 10, 2); function set_post_content($entry, $form){ //getting post $post = get_post($entry["post_id"]); $concern = $entry[13]; $sensitivity = $entry[18]; $loop = new WP_Query( array( 'post_type' => 'recommended', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'concern', 'field' => 'slug', 'terms' => $concern ), array( 'taxonomy' => 'sensitivity', 'field' => 'slug', 'terms' => $sensitivity ) ), 'orderby' => 'title', 'posts_per_page' => '-1', 'order' => 'ASC' ) ); ?> //THIS BIT DISPLAYS THE CORRECT LOOP BUT IT APPEARS IMMEDIATELY AFTER  RATHER THAN IN THE POST CONTENT 
    have_posts() ) : $loop->the_post(); ?>
post_content = "
    " . $concern . "
    sensitivity: " . $sensitivity . "
" ; }

Das Problem besteht darin, dass dies unmittelbar nach dem “body” -Tag anstatt in den Post-Body eingefügt wird. Wie bewege ich das dahin, wo es sein sollte ?! Ich könnte das alles falsch machen und ich bin ratlos

Solutions Collecting From Web of "gform_after_submission Inhalt erscheint unmittelbar nach , nicht in post body"

Ich denke nur an einen Freitag Abend (so ungeprüft), aber:

Sie geben das Ergebnis direkt auf der Seite aus. Natürlich wird es direkt nach dem Body-Tag angezeigt. Was Sie tun müssen, ist das HTML-Snippet zu speichern und an den Inhalt anzufügen / einzufügen, indem Sie den content_filter verwenden, wie s_ha_dum vorgeschlagen.

Dies ist nicht getestet und nach einigen Pernods getippt, aber:

 class wpse_95891 { protected $post_content; public function __construct() { add_action("gform_after_submission_18", array($this, "set_post_content"), 10, 2); add_filter("the_content", array($this, "the_content")); } /** * @param array $entry the Gravity Forms entry/lead "object" * @param array $form the Gravity Forms form "object" */ public function set_post_content($entry, $form) { // insert all of your query logic here... // grab the output and store in a field for later ob_start(); ?> 
    < ?php while ( $loop->have_posts() ) : $loop->the_post(); ?>
  • < ?php the_title(); ?>
  • < ?php endwhile; ?>
< ?php $this->post_content = ob_get_clean(); } /** * @param string $the_content post/page content * @return string */ public function the_content($content) { if (!empty($this->post_content)) { $content .= post_content; } return $content; } } new wpse_95891();

Danke für all eure Beiträge. Ich habe es geschafft, das zu erreichen, was ich brauchte (mit einem großen Dank an Alex bei WPMU!), mit globalen Deklarationen –

Wahrscheinlich nicht die eleganteste Lösung, aber es tut was ich brauche. Dies ist eigentlich eine viel vereinfachte Version von dem, was ich mache und auf diese Weise weiß ich, wie es funktioniert!

Bitte weisen Sie auf irgendwelche Probleme mit dem, was ich getan habe, wenn es!

 add_action("gform_after_submission_18", "recommendations", 10, 2); function recommendations($entry, $form){ global $concern; global $sensitivity; $post = get_post($entry["post_id"]); $concern = $entry[13]; $sensitivity = $entry[18]; add_filter("the_content", "recommended"); } function recommended() { global $concern; global $sensitivity; echo 'Here are your recommendations, based on your chosen options: 
'; echo 'Sensitivity: '; echo $sensitivity; echo '
Concern: '; echo $concern; echo '

'; $loop = new wp_query( array( 'post_type' => 'recommended', 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'concern', 'field' => 'slug', 'terms' => $concern ), array( 'taxonomy' => 'sensitivity', 'field' => 'slug', 'terms' => $sensitivity ) ), 'orderby' => 'title', 'posts_per_page' => '-1', 'order' => 'ASC' ) ); while ( $loop->have_posts() ) : $loop->the_post(); ?>
< ?php the_title(); ?>
< ?php if ( has_post_thumbnail() ) { the_post_thumbnail("thumb"); } ?>
< ?php endwhile; }