wp_query gibt Posts anderer Kategorien aus bzw. keine

  • Hi Folks,

    ich stehe gerade auf dem Schlauch. Ich habe eine Sidebar mit 3 Loops, die sich aus übergebenen Variablen zusammensetzen. Die Variablen habe ich per echo gecheckt, sie sind da und korrekt. Allerdings wirft der erste Loop Posts aus, die gar nicht in der angegebenen Kategorie stecken und der zweite Loop zeigt keinen Post an, obwohl es in der Kategorie welche gibt.

    [COLOR=Silver](erledigt)Und auch der Array zum Vermeiden von doppelten Posts in der Ausgabe wird nicht korrekt gefüllt, nur 2 der ersten 3 IDs landen darin.(/erledigt)[/COLOR]

    Das System ist WP 2.8.6 - wegen diverses Plugins <2.9

    Hier der Code:

    Der Listenpunkt ist unspektakulär / ein Klassiker:

    HTML
    <li><a href="<?php the_permalink(); ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a></li>

    Weiß irgendjemand einen Rat?

    Ich würde mich so freuen!!

    Einmal editiert, zuletzt von fhw (10. Januar 2010 um 21:14)

    • 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

  • Probier einmal zwischen die einzelnen Queries jeweils nach Abschluss mit
    <?php wp_reset_query(); ?>

    zurück zu setzen.

    Hat leider keinen Einfluss auf das angezeigte Ergebnis. Da die Variablen für die Loops durchnummeriert sind und die query mit new eingeleitet wird, vermutlich auch nicht verwunderlich...?

    Zum Haareraufen!

  • wie schaun denn die variablen aus?

    Sind Zahlen. Habe z.B. [COLOR=#000000][COLOR=#0000BB]$anzahl_alle [/COLOR][/COLOR]am Anfang des Dokuments voreingestellt.

    PHP
    $anzahl_alle = 3; // bei Bedarf anpassen

    [COLOR=#000000][COLOR=#0000BB]
    [/COLOR][/COLOR]Und [COLOR=#000000][COLOR=#0000BB]$ort_catid[COLOR=Black] holt sich WP selbst aus der DB mittels
    [/COLOR][/COLOR][/COLOR]

    PHP
    $ort_catid = get_cat_ID('.$ort.');

    [COLOR=#000000][COLOR=#0000BB][COLOR=Black]

    Hilft das weiter? Neue Ideen?
    [/COLOR][/COLOR][/COLOR]

  • hm. was mir einmal auffällt. in php knüpfst du mit "." strings zusammen. d.h. es ist jedenfalls schon in der variablen ein "." vorne und ein "." hinten zuviel, weil du den ja bei $neues dann noch einmal dabei hast. weiters benötigst du den "." am anfang nicht, weil da ja nichts davor steht, was man verknüpfen könnte.

    was genau enthält denn $ort? weil du eben das mit get_cat_id aufrufst.

  • $ort ist ein Ortsname, der aus der URL ausgelesen wird, um dann auch der Seite die News aus der Kategorie mit demselben Namen anzuzeigen.

    Da das Webangebot umfangreich ist und sich neben den Orten auch noch Produktbereiche - wieder mit News aus der dafür gleichlautenden Kategorie - abgefragt werden, kann ich es leider nicht über mehrere Templates oder direktes Zuordnen von OrtX zu KategorieX und ProduktA zu KategorieA machen. Und ich will auch die Komplexität des Ganzen steigern, weil es auch Newskategorien gibt, die für alle Produkte unabhängig vom Ort erscheinen und welche, die nur für ProduktC bei OrtY gelten sollen.

    Wenn ich schon beim ersten Loop Fehler produziere, werde ich hoffentlich nach der Lösung des Problems alle anderen Loops zügig nach demselben Muster aufbauen können.

    get_cat_ID ergibt btw. perfekt die richtige Kategorie. Wenn ich sie mir ausgeben lasse, sind die Punkte auch nicht dran. Ich kann natürlich wohl auch ein paar Byte sparen mit

    PHP
    $ort_catid = get_cat_ID($ort);

    Spontane Frage (schreiben gibt Gedankenimpuls) - gibt es eine Möglichkeit die Abfrage nur auf alle Beiträge (nicht Seiten) einzugrenzen? Gibt es sowas wie post-Typ?

    N8grüße

  • *smack*

    Phänomen hängt mit Unterkategorien zusammen. WP zeigt standardmäßig in Oberkategorie-Querys Posts aus Unterkategorien an, falls in der Oberkategorie weniger Posts sind, als angefragt. Posts von Unterkategorien gehören gleichzeitig zur Oberkategorie.

    Kann nützlich sein, muss nicht immer ;o)

  • Ich nehme es nochmal auf, denn vielleicht hilfts Anderen:
    Bei mir hat es geklappt, wenn ich die Kategorien-IDs angegeben habe.
    Ich wollte Posts aus Kategorien NEWS und EVENTS auslesen:
    [COLOR=#000000][COLOR=#0000BB]$News_Query [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]WP_Query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'cat=111[/COLOR][COLOR=#DD0000]&showposts=[FONT=verdana]......[/FONT][/COLOR][/COLOR]
    .....
    [COLOR=#000000][COLOR=#0000BB]$Events_Query [/COLOR][COLOR=#007700]= new [/COLOR][COLOR=#0000BB]WP_Query[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]'cat=222[/COLOR][COLOR=#DD0000]&showposts=[FONT=verdana]......[/FONT][/COLOR][/COLOR]
    .....
    Vielleicht stimmt oben mit der Variable $alle_catid was nicht.

Jetzt mitmachen!

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