1. Herzlich willkommen bei WPDE.org, dem grössten und ältesten deutschsprachigen Community-Forum rund um das Thema WordPress. Du musst angemeldet oder registriert sein, um Beiträge verfassen zu können.
    Information ausblenden

Query Posts -> Effizienz und Serverlast

Dieses Thema im Forum "Allgemeines" wurde erstellt von Maiskolben, 22. Oktober 2015.

  1. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Hallo Leute,

    ich muss euch mal bzgl. der Umsetzung einer Onepage-Seite fragen, auf der die Querys je nach Kategorie abgefragt werden. Wie verhält es sich da mit der Serverlast und kennt ihr vielleicht sogar bessere Möglichkeiten? Der Aufruf für insgesamt 6 Kategorien erfolg in der index.php... Es klappt so bereits mit der Ausgabe, aber es geht eben vielleicht besser oder eleganter?

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    usw....
     
    #1 Maiskolben, 22. Oktober 2015
    Zuletzt bearbeitet: 22. Oktober 2015
  2. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Oh Schreck ... ein query_posts() Konstrukt. Die Perfomance ist in dem Fall nachrangig. Query_posts() ist ein Relikt und gehört verbannt! Lese mehr dazu bei Monika und Automattic.
     
  3. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Ok, ich nutze nur die Index Seite, auf der ich 1-2 posts maximal aus insgesamt 6 Kategorien ausgebe. Monikas Artikel kann ich insofern nicht umsetzen, da ich nicht weiß, wie ich die category-slug.php's in die Index integrieren könnte und wäre das denn nicht auch für die Perfomance shiddy?

    Ich bin auf jeden Fall gewillt dazu zu lernen, jedoch stehe ich nach wie vor auf dem Schlauch. Die Funktionen von der englischsprachigen Seite kann ich mir nun auch nicht wirklich für das Vorhaben bauen und wüsste auch nicht wie ich diese Anwenden sollte. Kannst Du da bitte noch etwas ausführlicher zu schreiben?
     
  4. tatort

    tatort Well-Known Member

    Registriert seit:
    4. Mai 2009
    Beiträge:
    258
    Zustimmungen:
    1
    Hallo Maiskolben,

    auch ich nutze solche Konstrukte auf http://tatort-fans.de (Startseite). Die Performance hängt natürlich vom DB Server selbst ab. Wir haben dazwischen noch eine Memcache installation, die viele Requests puffert. Bei mir ist das Historisch so gewachsen, gerade weil ich meistens aus den Daten ein Array baue, um dann noch einmal selbst anders zu sortieren als WP das vorgesehen hat.

    Aber da muss ich dran. Eine schöne Übersicht kurz und knapp gibt es hier: http://wordpress.stackexchange.com/questions/1753/when-should-you-use-wp-query-vs-query-posts-vs-get-posts
     
  5. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Danke für den Link, Tatort! Ich suche auch noch nach einer Lösung davon wegzukommen. Gestaltet sich aber ein bißchen schwierig, da bei mir alles in/auf der index.php stattfindet.. :)
     
  6. Monika

    Monika Well-Known Member
    Ehrenmitglied

    Registriert seit:
    4. Juni 2005
    Beiträge:
    14.126
    Zustimmungen:
    2

    dann schau mal, ob du damit klar kommst


    http://www.texto.de/wordpress-cms-loop-spielereien-266/

    und da habe ich das mit dem Cache nicht angegeben

    brauchst du nämlich manches nicht wird ein wp-query sehr schnell


    Beispiel

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    brauchst du keine Pagination => musst du sie auch nicht nutzen, macht schneller
    brauchst du keine post meta Angaben => weg damit
    genauso post term cache

    was dies alles bewirkt => entweder liest dich ein oder versuchst es mit trial and error indem du beobachtest :)
     
  7. tatort

    tatort Well-Known Member

    Registriert seit:
    4. Mai 2009
    Beiträge:
    258
    Zustimmungen:
    1
    Du kannst es auch in die functions.php auslagern und dann nur noch die PHP Funktion aufrufen. Das macht den Quelltext in der index etwas übersichtlicher.
     
  8. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    klappt alles, habe das von hier doch übernommen und bin jetzt wenigstens ein wenig sauberer Unterwegs. :) Lieben Dank! Auch für den Link zu Deiner Seite!
    Habe gerad ein komisches Problem mit einem Plugin, dem "Timeline Express". Immer wenn ich das Plugin deaktiviere, surrt die Ausgabe wie ein Kätzchen und alle Posts aus den Kategorien werden normal in der Quellcodereihenfolge ausgegeben. Aktiviere ich es jedoch wieder, scheint es so zu sein, dass das Plugin den Originalen Query-Feed sozusagen an anderer Stelle im Quelltext ausgibt. Ein sehr stranges Verhalten. Mit dem leeren des Caches und dem resetten nach jeder Kategorieausgabe ändert sich auch die scheinbar wahllose Reihenfolge der Posts, die nicht da sein dürften! Hat das von euch schonmal jemand erlebt?

    PS: also sobald ich die Kategorie der Timeline mit dem dazugehörigen Post ausgebe, tritt der Fehler auf...
     
    #8 Maiskolben, 22. Oktober 2015
    Zuletzt bearbeitet: 22. Oktober 2015
  9. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
  10. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Verwendest Du denn noch irgendwo query_posts()? Das wäre nämlich exakt eines der Probleme die damit auftauchen weil query_post() ohne einen Reset die Main Query komplett ersetzt.
     
  11. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    @Maxe: Ja, das habe ich schon ausprobiert. Die Ausgabe des Plugins hat sich auch verändert, aber es geht trotzdem noch nicht. jQuery Library ist auch auf dem aktuellen Stand... Hm, komisch alles... :)
     
    #11 Maiskolben, 22. Oktober 2015
    Zuletzt bearbeitet: 22. Oktober 2015
  12. maxe

    maxe Well-Known Member
    Ehrenmitglied

    Registriert seit:
    1. Mai 2008
    Beiträge:
    19.581
    Zustimmungen:
    277
    genau das war auch meine Befürchtung.
     
  13. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Da hat sich der Post überschnitten. Antwort an mensmaximus:

    Aktuell verwende ich das hier:

    PHP:
    Entschuldige, aber du musst dich registrieren oder anmelden um den Inhalt sehen zu können!
    Der Fehler tritt auf, wenn nun der Post mit der Timeline dazugeladen werden soll, dann verwurschtelt sich alles. Beim Ausprobieren habe ich mal die ersten beiden Kategorien weggenmommen, da hat die Einbindung der Timeline dazu geführt, dass auch die Kategorien geladen wurden, die nicht im Quelltext angesprochen wurden. Daher die Vermutung, dass das Plugin irgendwie den original Query-Stream verwertet... Es ist nun schon besser, aber es kann natürlich auch sein, dass das Plugin einfach nicht korrekt läuft. Hab es mit einem anderen Theme getestet, da läuft es allerdings problemlos... Keine Ahnung! :smile:
     
  14. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Oh mann, Leute! Wisst ihr woran das alles lag? Ich habe mal einfach aus Spass gepaart mit reinster Verzweiflung das Wordpresseigene jQuery mittels wp_enqueue_script() abgestellt und siehe da: alles wird angezeigt! :) Denn euch mal einen schönen Abend und lieben Dank für die Hilfe (Monika, Deine Seite ist schön informativ, sehr verständlich für Laien wie mich!). Als nächstes schmeiß ich alles aus wpquery raus, was ich nicht brauche.. Hat sich doch gelohnt der Abend. Lg, Maiskolben :D
     
  15. mensmaximus

    mensmaximus Well-Known Member

    Registriert seit:
    24. Juli 2014
    Beiträge:
    8.857
    Zustimmungen:
    437
    Dann hast Du ein Problem mit einem mega unsauber programmierten Theme oder Plugin. Oberste Direktive: Was WordPress bereits lädt wird niemals erneut geladen. Kein Plugin soll ein eigenes jQuery laden.
     
  16. Maiskolben

    Maiskolben Well-Known Member

    Registriert seit:
    23. Februar 2010
    Beiträge:
    63
    Zustimmungen:
    0
    Ich mach mich grade schlau, wie ich Plugins dazu zwingen kann, das BoardJQ zu benutzen... Plugins müssen eigentlich auch immer über die wp_enqueue_srcipt() Routine gehen.. Naja, ich werd mir das mal in Ruhe anschauen...
     
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden