get_the_content arbeitet nicht in der Schleife?

Ich versuche, meine Schleife zu ändern, um Postdaten nach Kategorie zu speichern. Ich habe Code auf dieser Website gefunden, der die Titel des Beitrags basierend auf ihren Kategorien gespeichert und versucht hat, dies zu ändern, um den Inhalt der Nachricht zu speichern. Während get_the_title und get_the_category funktionieren, gibt get_the_content null zurück.

Hier ist der Code:

 if ( false === ( $q = get_transient( 'category_list' ) ) ) { $args = array( 'posts_per_page' => -1 ); $query = new WP_Query($args); $q = array(); $body = array(); while ( $query->have_posts() ) { $query->the_post(); $a = '' . get_the_title() .''; $post_id = get_the_ID(); $post_id = $post->ID; $body[$post_id] = array(); $body[$post_id]['title'] = '' . get_the_title() .''; //works $body[$post_id]['content'] = get_the_content('Read more'); $categories = get_the_category(); foreach ( $categories as $key=>$category ) { $b = '' . $category->name . ''; } $q[$b][] = $post_id; // Create an array with the category names and post titles } /* Restore original Post Data */ wp_reset_postdata(); set_transient( 'category_list', $q, 12 * HOUR_IN_SECONDS ); } 

Edit: So verwende ich das $body Array:

 foreach($q[$b] as $post) { echo('
'. $body[$post] . '
'); }

Edit2: Ich habe den vollständigen Code hinzugefügt. Wenn ich einen var dump von body mache, bekomme ich NULL und wenn ich einen var dump von $ q mache, bekomme ich

 array(3) { ["Conundrums"]=> array(1) { [0]=> string(64) "new post" } ["Tips and Tricks"]=> array(1) { [0]=> string(80) "Tips and tricks" } ["Uncategorized"]=> array(1) { [0]=> string(78) "Tips and Tricks" } } 

scheinbar unabhängig davon, wie ich die Schleife bearbeite. Ich bin sehr verwirrt. Jede Hilfe wird sehr geschätzt

Solutions Collecting From Web of "get_the_content arbeitet nicht in der Schleife?"

echo $post->post_content; wird Ihren Post-Inhalt wiedergeben. Denken Sie jedoch daran, es ist roh aus der database (wie get_the_content() ). Wenn Sie die gleichen Filter anwenden möchten, die the_content() empfängt, folgen Sie den statementen im Codex :

 < ?php $content = apply_filters('the_content', $content); $content = str_replace(']]>', ']]>', $content); ?> 

vielleicht versuchen < ?php statt < ? in Ihren Codezeilen, nicht sicher, aber ich verstehe, dass dies zu Problemen führen kann.

oder verwende < ?php echo $post->post_content; ?> < ?php echo $post->post_content; ?> und versuchen ohne 'Lesen Sie mehr' bedeutet nur < ?php the_content(); ?> < ?php the_content(); ?>