Benutzerdefinierte Post -Typ -Schleife in Shortcode
-
16-10-2019 - |
Frage
Ich bin wirklich verlor, warum dies nicht funktioniert:
Ich verwende einen Shortcode, um eine Abfrage für eine benutzerdefinierte Post -Typ + -Taxonomie anzuzeigen. Dies ist das Segment davon:
// - arguments -
$args = array(
'post_type' => 'customposttypename',
'taxonomyname' => 'alpha',
'post_status' => 'publish',
);
// - query -
$my_query = null;
$my_query = new WP_query($args);
while ($my_query->have_posts()) : $my_query->the_post();
// - variables -
$custom = get_post_custom($post->ID);
... und dann gehen Variablen weiter. Die Sache ist jedoch, wenn ich die Schleife ausführe, zeigt es mir alle Standard -Post -Inhalte (dh Titel, Inhalte usw.), weigert sich jedoch, benutzerdefinierte Post -Typ -Inhalte anzuzeigen und in der letzten Zeile oben zu stoppen (Zeile 145). dh $custom = get_post_custom($post->ID);
Gib mir den folgenden Fehler ..
Hinweis: undefinierte Variable: Post in C: xampplite ... functions.php in Zeile 145
Hinweis: Versuchen Sie, Eigentum von Nicht-Objekt in C: xampplite zu erhalten ... Funktionen.php in Zeile 145
Dann hier unten zeigt es mir den Titel, den Inhalt usw. normalerweise (einfach kein benutzerdefinierter Post -Typ -Inhalt)
Hat jemand eine Ahnung, was ich falsch mache?
Vielen Dank!
Lösung
Bekanntmachung: Versuch, Eigentum von Nicht-Objekten zu bekommen
Würde das indizieren $post
hat keinen Umfang in Ihrer Funktion. Eine einfache Lösung hier wäre die Globalisierung $post
Es hat also den Umfang, der den Fehler effektiv repariert.
Wenn Sie jedoch eine Abfrage erstellen oder die Schleife ausführen und anrufen the_post
Methode Dies gibt Ihnen Zugriff auf die WordPress Vorlagen -Tags.
Geben Sie dann globale Aussagen ein, die Sie anrufen können get_the_ID()
Dies sollte natürlich die ID des angegebenen Posts enthalten (dh der aktuelle Beitrag für diese Iteration der Schleife).
Aktualisieren Sie Ihre Problemzeile, um zu lesen.
$custom = get_post_custom( get_the_ID() );
Und das sollte das Problem lösen und natürlich das Geben feststellen $post
Umfang in der Funktion würde auch funktionieren, sie würde einfach nicht so poetisch aussehen! ..;)
Kleine Seitenfrage an den Aszern, wonach Sie suchen, wenn Sie anrufen get_post_custom
, Überprüfen Sie nach bestimmten Metaschlüssel oder nach jedem Meta -Element, den Sie finden? Möglicherweise gibt es dort etwas Raum für Verbesserungen (wenn Sie interessiert sind).