Dieser Code stammt von meiner Seite single-publication.php
.
Es gibt die relevanten benutzerdefinierten Felder usw. aus (hier in Vorlagen-Tags eingeschlossen), gibt jedoch the_content()
den Post-Inhalt nicht aus. Ich habe auf die Verwendung zurückgegriffen $post->post_content
(was funktioniert), aber das Rätsel 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?
EDIT: Ich war getrieben, diese Frage zu stellen, weil ich - wie sich herausstellte - fälschlicherweise glaubte, dass das $post
Arbeiten und get_the_title()
Zurückgeben eines Titels ein eisernes Zeichen dafür war, dass ich mich in der Schleife befand. Dies ist aber anscheinend nicht der Fall. Siehe Codex on The Loop (zweiter Absatz) und Codex on get_the_title () (Parameterliste). Kann jemand erklären?
$post
es bevölkert ist undget_the_title()
funktioniertAntworten:
Einige postbezogene Daten sind für get_posts standardmäßig nicht verfügbar , z. B. Postinhalt durch
the_content()
oder die numerische ID. Dies wird durch Aufrufen einer internen Funktionsetup_postdata()
mit dem Array $ post als Argument behoben :Siehe Zugriff auf alle Post-Daten
quelle
Es besteht eine gute Chance, dass Ihr HTML nicht in der Schleife enthalten ist. Stellen Sie sicher, dass Ihr Code folgendermaßen aussieht:
quelle
$ID (int) (optional) Post ID or leave empty to use current post in The Loop
the_content()
Funktion innerhalb der Schleife platzieren. Die Art und Weise, wie ich mich fühle,the_content()
sollte in einersingle.php
oderpost-type.php
Datei festgelegt werden. Aber aus irgendeinem Grund ist es nicht. Sie müssen noch eine Schleife in der Dateisingle.php
oder habenpost-type.php
.single-{post_type}.php
gibt es immer 1 Beitrag. Daherwhile(have_posts()){}
kann das weggelassen werden. Ist es nicht?