31
WordPress: MySQL vs get_posts() in 2.5 (und früher)…
Nach dem Update auf WP 2.5 wurden im unteren Block die aktuellen Beiträge nicht mehr korrekt angezeigt. Nach etwas Recherche fand ich diesen Beitrag im WordPress-Forum. Die dort vorgeschlagene Lösung den Hoster zu wechseln, naja… das muss auch anders gehen. Interessehalber habe ich mir das SQL-Statement ausgeben lassen:
SELECT DISTINCT *
FROM wp_posts
WHERE 1 =1
AND post_type = ‚post‘
AND post_status = ‚publish‘
GROUP BY wp_posts.ID
ORDER BY post_date DESC
LIMIT 0 , 5
mmh. Ja, ich würde einmal sagen, sieht sehr optimiert aus… Mit dem Rauswurf von unnötigem „Ballast“ lässt sich das Statement auch soweit anpassen, das es problemlos funktioniert. Allerdings müsste dazu die get_posts()-Methode angepasst werden und das war mir dann doch etwas zuviel Arbeit.
Aber es geht auch einfacher, ich hatte schon gesehen, dass das Widget zur Anzeige der aktuellen Beiträge problemlos funktioniert und so habe ich mir einfach dessen Code ausgeborgt ;)
31. März 2008 um 22:00:07
WHERE 1=1 ??? WTF? :)
1. April 2008 um 08:48:28
Tjo… auch das GROUP BY ist bei dem Statement überflüssig (und z.b. für den Bug verantwortlich)… Der Grund liegt wohl darin, das get_posts() auch aufwendigere Statements produziert, entprechende Parameter vorausgesetzt…
8. April 2008 um 21:31:04
Tja ich würd einfach mal behaupten, dass kommt davon, wenn man SQL Code programmatisch erzeugt. Klar ist das in dem Fall sinnvoll bzw. notwendig.
das 1=1 ist vermutlich nur ne vereinfachung um nicht abfangen zu müssen, ob man gerade die erste Einschränkung vornimmt oder eine weitere hinzufügt.
Das es allerdings nicht möglich sein soll, einfach nur das GROUP BY weg zu lassen, ist mir aktuell noch ein Rätsel – genauso aber auch, wieso das nen Fehler wirft.