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!

War es hilfreich?

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).

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit wordpress.stackexchange
scroll top