Erstens habe ich eine statische Seite für Homepage und für Blog-Seite. Ich habe eine benutzerdefinierte Box für Seiten erstellt, um ein einzigartiges Hintergrundbild für die Seiten einzurichten. Meine Idee arbeitet an allen Seitenvorlagen, aber auf der Blog-Seite stimmt etwas nicht.
header.php ist auf allen Seiten gleich
{...} ID ); ?> body { background-image:url(""); } {...}
Das grundlegende Problem ist, dass es in Ihrer header.php
keine Variable $post
header.php
. Diese Variable existiert möglicherweise im globalen Gültigkeitsbereich , aber Ihr Code funktioniert in einem functionsumfang von load_template()
der von get_header()
aufgerufen wurde.
Sie haben also vier Möglichkeiten:
Importieren Sie die globale Variable mit dem Schlüsselwort global in Ihre function. globale $ post;
// make sure everything is set up as a post object $post = get_post( $post ); $values = get_post_custom( $post->ID );
Verwenden Sie get_queried_object_id()
, um die ID zu erhalten, ähnlich wie der Vorschlag von hepii110 .
$values = get_post_custom( get_queried_object_id() );
Verwenden Sie get_the_ID()
. Dies entspricht fast der Version 1.
$values = get_post_custom( get_the_ID() );
Rufen Sie get_post_custom()
ohne die Post-ID auf. Es wird versuchen, die richtige ID automatisch zu finden.
$values = get_post_custom();
Veränderung
$values = get_post_custom( $post->ID );
zu
$values = get_post_custom( get_queried_object()->ID );