Für Menschen · Seien Sie begeistert und Sie werden begeistern !
Da der Titel nicht besser gelungen ist, hole ich gleich zu beginn mal ein wenig aus und erkläre was WPlize macht und wozu es gedacht ist.
WPlize ist eine Klasse, die man frei nutzen darf und soll. Sie dient dem Zugriff auf die Tabelle options von WordPress und erleichtert das Anlegen, Ablegen, Holen und Löschen von Einstellungen zu Plugins oder Themes in der Datenbank, Tabelle options, von WordPress. Durch die Verwendung dieser Klasse werden Plugins und Themes performanter und sauber aufgebaut. Es wird pro Plugin oder Theme nur ein Eintrag in der Datenbank angelegt, mit Hilfe eines Array werden diese Daten dort hinterlegt und verwaltet.
Viele Plugins legen sehr viele Daten ab, nur als Beispiel: das populäre Kontaktform-Plugin cforms legt ca. 60 Einträge ab, die damit auch sehr viele Aufrufe starten und die Last erhöhen.
Das muss nicht sein, den WordPress unterstützt im Standard das Nutzen von Arrays. Auch einzelne Einträge werden von WordPress über das interne Caching performanter gestaltet, allerdings ist dies nie so optimal wie ein Array für viele Einträge als viele Einträge in der Datenbank.
Die Lösung nutze ich schon seit geraumer Zeit und habe bisher jeweils neue Funktionen in meinen Plugins dafür abgelegt. In älteren Plugins habe ich die Vorgehensweise zum Teil noch nicht umgesetzt, bei entsprechenden Änderungen und Zeit wird dies aber passieren.
Durch eine Kommunikation mit Sergej Müller (bekannt durch sein Plugin wpSEO), dem ich diese Variante empfahl ist eine gemeinsame Arbeit entstanden, die Sergej dann gleich auf ein eigenständige Klasse erweitert hat, so dass es nun einfacher und mit viel weniger Code integrierbar ist.
Im ersten Wurf stand uns der Sinn nach einem Plugin, was den Zugriff aus anderen Plugins ermöglicht. Da wir aber glauben, dass es dann nicht zu einer Verbreitung kommt, habe wir diese Idee wieder verworfen und möchten die Klasse nun hier anbieten und stellen sie zum Nutzen frei.
Die Klasse stellt nicht die Funktionen von WordPress in Frage, sie nutzt diese ebenfalls. Sie macht es nur einfacher, dass Plugin- und Theme-Autoren einen performanteren Zugriff ohne viel Mühe haben. Die klassischen Funktion add_option, delete_option, get_option und update_option kommen trotzdem in den Funktionen der Klasse zum Einsatz.
Die Datei am besten in einem Unterordner eures Plugins oder Themes ablegen und via PHP einbinden.
if ( !class_exists('WPlize') ) {
require_once('inc/WPlize.php');
}
Dadurch stehen dann die unterschiedlichen Zugriffe zur Verfügung und sollen anhand folgender Syntax ein wenig näher erklärt werden.
Dem Download liegt auch ein Readme-Datei bei, so dass Erklärungen und Beispiele auch dort zu finden sind.
$WPlize = new WPlize(
'my_plugin',
array(
'my_key' => 'my_value',
'your_key' => 'your_value'
)
);
$WPlize->update_option('my_key', 'simple_value');
$WPlize->update_option(
array(
'my_key' => 'my_value',
'your_key' => 'simple_value'
)
);
$WPlize->get_option('your_key');
$WPlize->delete_option();
Ist die Arbeit nicht 1 Euro wert?
Jede Spende wird dankbar angenommen und ermöglicht das weitere Arbeiten an freier Software.
Möchtest du mehr oder anders spenden, so besuche meine Wunschliste.

Download als zip-Datei: class_WPlize.zip - 3 kByte
Ich bin urlaubsreif, ersticke in Arbeit und damit auch für die Leser des Weblogs nicht zu erreichen. Bitte geduldet euch ein wenig mit Supportanfragen.
Leider muss ich die Kommentarfunktion deaktivieren, ansonsten würde ich weiter in Arbeit ersticken oder die Anfragen nicht nach bestem Gewissen beantworten.
Vielen Dank für das Verständnis!
bueltge.de [by:ltge.de] wird von Frank Bültge geführt, administriert und gestaltet. Alle Inhalte sind persönlich von mir ausgewählt und erstellt, nach bestem Gewissen und Können, was die Möglichkeit von Fehlern nicht ausschließt.
Das Weblog wird angetrieben von WordPress und aktuell gibt es 854 Beiträge, 15038 Kommentare in 14 Kategorien und 450 Tags.
Das Blog wird liebevoll mit xHTML & CSS in Handarbeit gestaltet.
Design und Code ist unter Copyright
© 2001 - 2010 bueltge.de [by:ltge.de]
29. September 2008 um 19:28
Warum benutzt ihr nicht die __get und __set Magic-Methoden? Grundsätzlich finde ich den Zugriff über eine Klasse klasse (tolles Wortspiel, oder?), aber er muss auch für mich als Programmierer einfacher/schneller/kürzer sein. sonst benutze ich den alten Weg weiterhin.
Und der Download funktioniert (noch) nicht.
29. September 2008 um 20:38
Aber das ist es doch gerade, mir dieser klasse Klasse (?) ist es schneller und einfacher. Zuvor musste man sich dafür eigene Funktionen bauen, oder übersehe ich was? Klassich wird mit get_option oder set_option gearbeitet, wo es auch schon im WP-Standard möglich ist, Arrays abzulegen, denn WP erkennt es automatisch. Trotzdem muss man aber das Array dann noch zerlegen und die Aktualisierung durch eine Funktion jagen.
*Download gefixt, Danke !
29. September 2008 um 20:55
Ich arbeite schon etwas länger mit serialize() und unserialize() für meine neuern Plugins, und finde dies auch sehr elegant. Welchen Vorteil hätte das Plugin für mich?
29. September 2008 um 21:32
@Ralf: Du bindest es als Klasse ein, ein Zeile. Dann ist der Zugriff jeweils auf die Inhalte sehr einfach und schlicht. Man muss keine eigenen Update- oder "Hol"- etc. Funktionen schreiben. Serialize() und unserialize() sind in WP nicht notwendig, denn WP unterstützt das im Standard seit Version 2.5.
29. September 2008 um 22:02
Wenn ich Optionen habe, speichere ich die in einem assoziativem Array. Und das speichere ich dann mit
set_option()bzw. hole ich wieder mitget_option().Brauche ich dafür eine eigene Klasse? Ich denke nicht
LG
Dominik
Achja: unterstützt WP nicht schon sehr viel länger das automatische (de-)serialisieren von Variablen bei Verwendung von
set_option()/get_option()? Ich meine das schon mit WP 2.0 genutzt zu haben...29. September 2008 um 22:06
@Dominik: bin mir nicht sicher, dachte auf jeden Fall seit 2.3.
Nochmal, die Klasse ersetzt nicht get_ und set_option, sondern nutzt diese. Aber in deinen Plugins musst di ja den Schlüssel im Array suchen oder ablegen und nur dass macht das Plugin. Der Zugriff ist damit lediglich einfacher, nicht anders. Natürlich braucht man das nicht, man kann es auch wie bisher selber coden, ohne Klasse in die jeweilige Funktion. Mit der Klasse steht nur ein Hilfsmittel bereit.
29. September 2008 um 22:15
ich bau mir immer eine array auf mit meinen optionen und jag die mit ner foreach schleife in ne datenbank und genau so lösch ich sie auch wieder.
dürfte wohl dann so ziemlich genau das gleiche sein.
ist ne gute idee für die, die es brauchen, für mich jedoch überflüssig. werds aber doch mal später am abend durchschauen und sehen ob es vorzüge hat die ich nicht bedenke.
29. September 2008 um 22:21
verrückt. ich bin leider kein coder und da klingelt mir die klasse ganz schön im kopf hin und her.
29. September 2008 um 23:29
@Ralf
Du kannst das Array direkt speicher, eine foreach-Schleife ist völlig überflüssig
@Frank
Hilfsmittel sind immer gut. Nur denke ich, dass hier eine eigene Klasse für soetwas profanes, nämlich dem Wrappen von
get_option()undset_option()etwas überdimensioniert ist... Davon abgesehen ist einmal$o = get_option('pluginname')und dann der Zugriff auf$o['irgendeine-option']ziemlich billig.Cooler fänd ich jetzt aber ne Klasse, die mir das Verwalten der Plugin-Oberfläche im Backend erleichtert: Klasse einbinden, Erscheinungsbild festlegen und passende Seite ausgeben...
LG
Dominik
30. September 2008 um 08:06
@Dominik: das gibt es bereits WPF - WordPress Plugin Framework, allerdings ist das eventuell zu oversized, denn das Framework bietet natürlich mehr Inhalte als nur der Zugriff auf die Oberfläche.
30. September 2008 um 10:19
och war das gestern so spät... ja ich benutz immer serialize und vorher nutzte ich ne foreach schleife...
niemals bis 1 uhr ein shop programmieren und nebenher blogs lesen, wird man ganz verwirtt
7. November 2008 um 00:23
Eigentlich schade, dass noch keiner Frank gelobt hat:
Feine kleine Klasse.
9. Dezember 2008 um 13:47
21. Mai 2009 um 13:22
Nun, es scheint an dieser eleganten Programmierug zu liegen, dass WPSeo (grade gekauft) bei mir nach der Aktivierung nur einen FATAL ERROR anzeigt:
Warning: wpSEO::require_once(inc/wplize.class.php) [wpseo.require-once]: failed to open stream: No such file or directory in....Pfad zu WPseo line 12.
8. August 2009 um 15:18
Claudia,
erstens, ist es hier kein Blog für wpSEO oder so. Wenn du Fehlermeldungen hast oder Unterstützung zu wpSEO brauchst, dann weiß du, wie du den Entwickler kontaktieren kannst - die Informationen dazu habe ich an jeder nur erdenklichen Stelle auf der wpSEO Website hinterlegt.
Zudem ist die Fehlermeldung ja sehr aussagekräftig und besagt, dass die Datei im angegebenen Verzeichnis nicht gefunden wurde - diese liegt aber dem heruntergeladenen ZIP-Archiv definitiv bei. Bitte alles per FTP hochladen, nicht nur Teile davon.