WP_Query in Widget

  • Hallo Community,

    für ein Wordpress-Template entwickel ich gerade ein Widget, dass ein paar Customs-Posts aus einer bestimmten Kategorie ausgeben soll. Das ermittel der Kategorie und der Zugriff auf dessen Daten funktioniert porblemlos. Aber das WP_Query, dass ich eingebaut habe, liefert immer ein leeres Result und ich weiß leider nicht warum.

    Folgend mein Aktueller Widget-Code:

    Wie gesagt, aus einem mir unbekannten Grund liefert das Query keine Ergebnisse, obwohl ca. 170 Produkte dieser Kategorie zugeordnet sind.

    Hat jemand von euch eine Idee was ich falsch mache? Würde mich über ein paar Antworten freuen.

    MfG Kinger

    • Anzeige

    Hallo!

    Wenn du gerade an deiner Website arbeitest oder dein aktuelles Hosting überdenkst: Wir betreiben mit NetzLiving eine Hosting-Plattform, die speziell auf Performance, Sicherheit und einfache Verwaltung ausgelegt ist.

    • ✔️ Schnelle Ladezeiten (optimiert für WordPress & Co.)
    • ✔️ Deutsche Server & DSGVO-konform
    • ✔️ Persönlicher Support (kein 0815-Ticket-System)

    Mehr erfahren

  • Mach mal ein var_dump($query) und füge auf jeden Fall ein wp_reset_postdata() nach dem endwhile ein, sonst bekommt Du noch ganz andere Effekte.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Stimmt, "wp_reset_postdata()" ganz vergessen. Danke für den Hinweis, wird gleich eingebaut. "var_dump" hatte ich bereits drin. "var_dump($query->posts);" gibt immer ein leeres Array zurück. Soll ich mal das var_dump von $query komplett posten?

    Hier das von WP erzeugte SQL-Statement:

    PHP
    SELECT SQL_CALC_FOUND_ROWS  wp_posts.ID FROM wp_posts  INNER JOIN wp_term_relationships ON (wp_posts.ID = wp_term_relationships.object_id) WHERE 1=1  AND ( wp_term_relationships.term_taxonomy_id IN (4) ) AND wp_posts.post_type = 'product' AND ((wp_posts.post_status = 'publish')) GROUP BY wp_posts.ID ORDER BY wp_posts.post_date DESC LIMIT 0, 9

    Einmal editiert, zuletzt von Kinger (29. August 2014 um 17:42)

  • Soll ich mal das var_dump von $query komplett posten?

    Das ist unter Umständen ziemlich groß. Einfach als Textdatei anhängen.

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Bin gerade zu faul Dein array zu prüfen ;-) Mach mal bitte ganz klassisch:

    PHP
    <?php
    $cp = new WP_Query();
    $cp->query('post_type=product');
    while ($cp->have_posts()) {
    	$cp->the_post();
    	echo the_title() . '<br />'; 
    }
    wp_reset_postdata();
    ?>

    WordPress ist "frei" wie in Freiheit es zu nutzen, aber nicht im Sinne von Freibier. Wer also glaubt man bekommt rund um WordPress alles kostenlos, der irrt. Hilfe ist ein Geschenk für das man sich bedankt, dafür gibt es den 'Gefällt mir' Button. Wer das nicht kann und sich selbst nicht zu helfen weiss, muss sich bezahlte Unterstützung suchen.

  • Danke mensmaximus,
    das gab mir den richtigen Hinweis. Mir ist nicht aufgefallen, dass mein Kunde seine Artikel alle als Entwurf eingepflegt hat. Klar, dass dann auch nichts ausgegeben wird, wenn man nur nach 'publish' sucht.
    Asche auf mein Haupt und Danke für deine Hilfe.

    MfG Kinger

    PS: Kann ich ein Thema als 'gelöst' markieren?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!