Anzeige des benutzerdefinierten Felds Meta-Outside-Loop, standortweit

Ich habe ein benutzerdefiniertes Feld (“breaking”) mit dem Ziel erstellt, dass immer wenn ein Beitrag dieses Feld enthält, der Wert in der Kopfzeile der Website angezeigt wird (also alle Posts, Seiten, Archive usw.).

Das Problem, das ich habe, ist, dass es nur auf der Homepage und auf der spezifischen Post-Seite angezeigt wird, die das benutzerdefinierte Feld hat, aber nirgendwo sonst.

Code verwendet (aus header.php):

post->ID; ?>  
<a href="https://wordpress.stackexchange.com/questions/163789/display-custom-field-meta-outside-loop-site-wide/ ">

Wie kann ich diese Website anzeigen lassen?

Solutions Collecting From Web of "Anzeige des benutzerdefinierten Felds Meta-Outside-Loop, standortweit"

Um einen Post-Meta-Wert aus einem bestimmten Post im Header anzuzeigen, können Sie ihn wie folgt mit Post-ID anstelle der Variablen $post-ID .

 < ?php echo get_post_meta( '1234', 'breaking', true ); ?> 

get_post_meta akzeptiert Post-ID und wenn Sie nur Post-Meta von einem bestimmten Post zeigen müssen, dann können Sie Post-ID in get_post_meta und es wird immer Meta-Wert von nur 1 Beitrag zeigen.

Also folgt Ihr aktualisierter Code. Hier ist 1234 die ID Ihres Posts, Sie sollten sie durch Ihre ersetzen. Beachten Sie, dass Sie die Post-ID auch im Permalink hinzufügen müssen.

 < ?php if ( get_post_meta( '1234', 'breaking', true ) ) { ?>  < ?php } ?> 

BEARBEITEN:

Natürlich wird es nicht überall auf der Website nach Post-Meta mit dynamischer Post-ID-Variable funktionieren, da Archiv-, Kategorie-, Such-, Autor-, Tagseiten keine Post-ID haben. Was Sie stattdessen tun können, ist Post Meta von Post / Seite drucken, die ID haben, aber wenn es ein leeres Ergebnis gibt, dann drucken Sie Post Meta von bestimmten Post / Seite ID.

 < ?php global $wp_query; if ( get_post_meta( $post->ID, 'breaking', true ) ) { ?>  < ?php } else { ?>  < ?php } wp_reset_query(); ?>