Benutzerdefinierte databasetabellenfrage

Ich habe also eine Frage bezüglich der Erstellung einer neuen databasetabelle für mein Plugin, den Easing Slider, der eine große Überarbeitung erfährt.

Bis jetzt habe ich mich auf update_option , get_option und diese verschiedenen functionen verlassen, um Einstellungen zu speichern, zu bearbeiten und zu erhalten. Es hat gut funktioniert, aber ich habe einen kleinen Haken gefunden.

So können Sie mit den Plugins “Premium” -Bruder mehr als eine Diashow erstellen. Dies geschieht durch Speichern eines mehrdimensionalen Arrays in einer einzigen Option. Ich habe dann eine function, die ein bestimmtes Array nach der angegebenen ID auswählt, die als Brennpunkt dient, um bestimmte Einstellungen für Diashows zu erhalten.

Das Problem ist, dass dieses Plugin unbegrenzte Diashows mit unbegrenzten Bildern erlaubt. Viele Benutzer haben Hunderte von Diashows erstellt, und die wenigsten haben zu diesem Zeitpunkt Probleme. Wie Sie sich vorstellen können (zum Beispiel) 100 Diashows mit je 20 Bildern und jedes Bild mit etwa 20 verschiedenen Einstellungen, kann die eine databaseoption sehr groß werden. Dies hat zur Folge, dass der Benutzer aus unbekannten Gründen Probleme hat und plötzlich keine neuen Diashows oder Bilder erstellen kann, auch wenn 'update_option' zurückgibt und uns 'update_option' , dass dies erfolgreich war. Man kann nur annehmen, dass dies daran liegt, dass die databaseoption ihr Limit erreicht hat (möglicherweise falsch, ich habe keine Ahnung warum).

Also schaue ich mir an, wie die Dinge funktionieren und eine benutzerdefinierte databasetabelle verwenden. Die einzige Sache, die ich nicht verstehen kann, ist die dynamische Erstellung der Tabelle. Die Art des Plugins ist so, dass neue Features oft hinzugefügt und entfernt werden. Filter-Hooks ermöglichen es Benutzern auch, ihre eigenen neuen functionen / Einstellungen einfach hinzuzufügen. Jede Einstellung hätte idealerweise eine eigene Spalte.

Als ein grundlegendes Beispiel könnte ich einfach die IDs der verschiedenen Einstellungen in einem einzigen Array zusammenstellen. Aber könnte die databasetabelle aus einem so einfachen Array erstellt werden?

 $array = array( 'option_one', 'option_two', 'option_three' ); 

Solutions Collecting From Web of "Benutzerdefinierte databasetabellenfrage"

Ich würde vorschlagen, einen benutzerdefinierten Beitragstyp zu verwenden, um Ihre Diashows zu speichern, und dann können alle benutzerdefinierten functionen / Einstellungen als benutzerdefinierte Felder (in der postmeta-Tabelle) für jede Diashow gespeichert werden und Ihnen eine native Admin-Benutzeroberfläche geben, so dass alles, was für Sie übrig ist zu tun ist, fügen Sie Ihre functionen / Einstellungen als Metaboxen.

Das mache ich auch mit den Slideshows meines Themes 🙂