dynamicinternet Webdesign

Das Blog

Themen, Tutorials sowie Tipps & Tricks über Webdesign, (X)HTML und CSS, Programmierung, WordPress und was uns sonst noch bewegt.

RSS abonnieren

WordPress Post Count

Folgendes Problem: Ich brauche für mein Theme eine bestimmte Anzahl Posts, die sich daraus ergibt, welche Darstellungsoptionen der Nutzer wählt. Hat etwas mit dem Layout zu tun. Die Anzahl der vorhandenen Posts kann ich ermitteln mit wp_count_posts(), welches ein Array zurückliefert (draft und publish).


$havePosts = wp_count_posts();
echo $havePosts->publish;

Das verursacht jedoch immer eine Datenbankabfrage, wenn die Seite aufgerufen wird. Umso ärgerlicher, da irgendwann die benötigte Anzahl Posts weit überschritten ist und die Datenbakabfrage sinnlos wird und nur das System belastet.

Jetzt kann ich bei der Installation des Themes einen Wert definieren, auf false setzten und in den Optionen speichern. Also muß ich die Option holen (keine Datenbankabfrage), wenn die false ist, die Posts counten, sind die größer als benötigt, dann die Option auf true updaten. Damit habe ich das Dillema fast in Griff.

Ein kleines, relativ unwarscheinliches, aber dennoch mögliches Problem gibts dabei: Angenommen, ich brauche 10 Posts, der Nutzer schreibt die 10 Post, die Option wird auf true updated und ein Count wird nie wieder ausgeführt. Wenn der Nutzer aber ausgerechtet danach eine Post löscht, habe ich ein kurzzeitiges Problem, welches das Layout zerhaut (YAML Subcomuns) und zwar solange, bis es wieder 10 Posts minimum sind. Verstanden, was ich meine?

Kein Plan, wie ich das handeln kann. Ich will unbedingt diese Datenbankabfrage loswerden. Vielleicht hat ja einer meiner werten Leser eine Idee?

2 Kommentare
  1. Damian sagt:

    So eine Summierung nimmt keine bemerkenswerte Performance weg. Du müsstest hundert tausende von einträgen haben, wobei dies auch noch sehr flott abgefragt wird.

    Du könntest es aber sonst auch so machen, dass du einen cronjob ausführst und die zahl in eine txt datei oder was auch immer speicherst und nur diese in WP einbindest.

    gruß
    damian

  2. Micha sagt:

    Sicher ist eine Abfrage nicht schlimm, solche Dinge summieren sich aber. Ich machs jetzt anders. Ich hole die benötigten Posts ab, counte dann das Postobjekt und kann damit gucken, ob genug Posts da sind und wenn nicht, eventuelle Maßnahmen ergreifen. Manchmal sieht man den Wald vor lauter Bäumen nicht…

Einen Kommentar schreiben