it-swarm.com.de

warum funktioniert the_content () auf dieser {single-custom_post_type.php} Seite nicht?

Dieser Code stammt von meiner Seite single-publication.php.

Es gibt die relevanten benutzerdefinierten Felder usw. aus (hier in Vorlagen-Tags eingeschlossen), aber the_content() gibt den Beitragsinhalt nicht aus. Ich habe auf $post->post_content zurückgegriffen (was funktioniert), aber das Geheimnis bleibt:

<div class="publication-info">
    <?php printf("<h2>%s</h2>", get_the_title() ); ?>
    <div class="publication-meta publication-credit"><?php the_publication_credit(); ?></div>
    <div class="publication-meta publication-date"><?php the_publication_date(); ?></div><br />
    <div class="publication-blurb" style="font-family:sans-serif;"><?php echo $post->post_content; // the_content() doesn't work. Why not? ?></div>
</div>

Was ist denn hier los?

BEARBEITEN: Ich war getrieben, diese Frage zu stellen, weil ich - wie sich herausstellte - fälschlicherweise glaubte, dass $post arbeiten und get_the_title() einen Titel zurückgeben ein ironisches Zeichen dafür waren, dass ich mich in der Schleife befand. Dies ist aber anscheinend nicht der Fall. cf Codex on The Loop (zweiter Absatz) und Codex on get_the_title () (Parameterliste). Kann mir jemand erklären?

7
djb

Einige postbezogene Daten sind standardmäßig nicht für get_posts verfügbar , z. B. Post-Inhalt über the_content() oder die numerische ID. Dies wird behoben, indem eine interne Funktionsetup_postdata()mit dem Array $ post als Argument aufgerufen wird:

<?php
$args = array( 'posts_per_page' => 3 );
$lastposts = get_posts( $args );
foreach ( $lastposts as $post ) :
  setup_postdata( $post ); ?>
    <h2><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
    <?php the_content(); ?>
<?php endforeach; 
wp_reset_postdata();
?>

Siehe Zugriff auf alle Beitragsdaten

3
Giraldi

Möglicherweise ist Ihr HTML-Code nicht in der Schleife enthalten. Stellen Sie sicher, dass Ihr Code folgendermaßen aussieht:

if(have_posts()): while(have_posts()): the_post(); ?>

    <div class="publication-info">
        <?php printf("<h2>%s</h2>", get_the_title() ); ?>
        <div class="publication-meta publication-credit"><?php the_publication_credit(); ?></div>
        <div class="publication-meta publication-date"><?php the_publication_date(); ?></div><br />
        <div class="publication-blurb" style="font-family:sans-serif;"><?php echo $post->post_content; // the_content() doesn't work. Why not? ?></div>
    </div>

<?php endwhile; endif;
9
Brian Fegter