Ich habe meiner WordPress-Datenbank manuell eine Tabelle hinzugefügt, indem ich SQL mit CREATE TABLE
verwendet habe. Ich möchte Funktionen zum Hinzufügen, Ändern und Entfernen von Daten aus dieser Tabelle hinzufügen, genau wie bei wp_update_user()
.
Soll ich eine Schnittstelle für meine neue Tabelle erstellen? Wie gehe ich vor?
Mehr zum Problem:
Ich möchte, dass Benutzer der Website Gruppen/Teams beitreten können. Ich habe eine Teamtabelle (mit Team-ID, Team-Typ und Team-Name) und eine Join-Tabelle (mit Benutzer-/Team-ID) in meiner Datenbank eingerichtet. Ich möchte in der Lage sein, Funktionen, die sich auf diese Tabellen beziehen, aus meiner page_template.php
-Datei aufzurufen.
Zum Beispiel möchte ich eine Funktion aufrufen, die ein neues Team basierend auf der Formulareingabe eines Benutzers in die Datenbank einfügt.
Soll ich eine Schnittstelle für meine neue Tabelle erstellen? Wie gehe ich vor?
Leider gibt es keine zu implementierende Schnittstelle, Sie müssen alles von Grund auf neu erstellen . Das beinhaltet:
Das einzige, was WP für Sie hilfreich ist, ist die Variable $wpdb
, mit der Sie SQL-Abfragen durchführen können.
Ich möchte Funktionen zum Hinzufügen, Ändern und Entfernen von Daten aus dieser Tabelle hinzufügen, genau wie mit wp_update_user ().
Sie müssen alle diese von Grund auf neu erstellen, wenn Sie sie möchten. WordPress bietet hier keine Hilfe
Zum Beispiel möchte ich eine Funktion aufrufen, die ein neues Team basierend auf der Formulareingabe eines Benutzers in die Datenbank einfügt.
Sie müssen die Funktion von Grund auf neu erstellen. Es gibt keinen empfohlenen Pfad für das, was Sie tun. Es handelt sich um eine generische PHP - Entwicklung, die sich zufällig auf einer WP - Site befindet. Keine der WP-APIs ist hilfreich
Ich habe meiner WordPress-Datenbank manuell eine Tabelle hinzugefügt, indem ich SQL mit
CREATE TABLE
verwendet habe.
Die Funktion dbdelta
kann auch verwendet werden, um die Tabelle zu erstellen und ihr Schema zu aktualisieren. Es handelt sich jedoch um eine sehr knifflige und unnachgiebige Funktion, die CREATE TABLE-Anweisungen mit äußerst spezifischen Anforderungen an die Formatierung und Null-Wackel-Raum erwartet. Wenn Sie beispielsweise nach dem Schlüsselwort PRIMARY
keine zwei Leerzeichen einfügen, funktioniert dies nicht und es gibt viele andere Einschränkungen.
Es gibt keinen. Der Grund, warum Sie nicht gefunden haben, wonach Sie suchen, ist, dass es nicht existiert. WordPress bietet wenig oder gar nichts in Bezug auf Support, Anleitung, Infrastruktur, Schnittstellen oder Hilfe für die Verwendung benutzerdefinierter Tabellen.
Nach gängigen Best Practices werden benutzerdefinierte Tabellen selten benötigt, und die Verwendung einer benutzerdefinierten Tabelle ist in den meisten Fällen ein Zeichen dafür, dass ein Fehler aufgetreten ist. In den meisten Fällen werden benutzerdefinierte Tabellen für die Interaktion mit Tabellen verwendet, die bereits an anderer Stelle vorhanden sind.
Gibt es Möglichkeiten, sich das Leben zu erleichtern? Ja! Aber diese sind nicht WP spezifisch, sie sind offensichtliche Dinge wie Abstraktionen und Wrapper-Funktionen, die für jedes PHP Programm gelten würden.
Zum Beispiel habe ich einmal die Doctrine ORM-Bibliothek verwendet, um eine Reihe von benutzerdefinierten Tabellen zu implementieren. Das Plugin enthielt sehr wenig WP Code und könnte genauso gut eine eigenständige PHP Anwendung gewesen sein. Im Nachhinein hätte ich es genauso gut mit benutzerdefinierten Beitragstypen und einer nicht öffentlichen Taxonomie machen können.
Was Sie suchen sollten, ist allgemeines PHP benutzerdefiniertes Tabellenmaterial, nicht WP spezifisch. Außerhalb von wpdb
stöbern Sie in einer Sackgasse
Haben Sie nebenbei erwogen, nur eine benutzerdefinierte Benutzertaxonomie zu verwenden ? Taxonomien sind nicht nur für Posts, Taxonomien sind für IDs! Solange diese ID numerisch ist und sich immer auf den gleichen Typ bezieht, kann es sich um Posts, Kommentare, Benutzer, Hausnummern usw. handeln. Mischen Sie sie einfach nicht.