Wie verwende ich die get_post_custom function auf der Blogseite?

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(""); }  {...}  

Solutions Collecting From Web of "Wie verwende ich die get_post_custom function auf der Blogseite?"

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:

  1. 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 ); 
  2. 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() ); 
  3. Verwenden Sie get_the_ID() . Dies entspricht fast der Version 1.

     $values = get_post_custom( get_the_ID() ); 
  4. 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 );