Wie verwende ich eine andere database, um Kommentare im Backend aufzulisten und zu verwalten?

Ich muss WordPress dazu bringen, eine andere database (nicht die in der wp-config site-wide) im Admin-Backend “Comments” zu verwenden. Ich muss dann Kommentare wie gewohnt bearbeiten, genehmigen, löschen etc. können. Der databaseserver, mit dem ich eine Verbindung herstellen möchte, wurde so eingerichtet, dass er externe Verbindungen akzeptiert.

Ich habe ein paar Ideen, wie ich das angehen kann:

  1. Von wp-config.php: Haben Sie einen if-Block, um die databaseverbindungszeichenfolgen zu ändern, wenn der Benutzer die Kommentarseite anzeigt.

Das hört sich für mich jedoch nicht gut an. Ich nehme an, dass dies zu vielen unnötigen databaseverbindungen führen kann, wenn der Benutzer zur Kommentarseite hin und her geht.

  1. modifiziere wp-admin Dateien: Erstelle eine Instanz von wpdb und erzähle WordPress, um sie für die Kommentarverwaltung zu verwenden.

Ich kann jedoch die .php-Dateien nicht finden, die die Kommentare von der database erhalten (so kann ich die database dort ändern, wo sie es tun). Habe ich edit-comments.php-> class-wp-kommentare-list-table.php-> class-wp-list-table.php (bis zur Basisklasse) angeschaut, aber ich kann das Bit nicht sehen, das redet zur database.

  1. Gibt es irgendwelche Möglichkeiten, die database zu öffnen und zu ändern? (bezweifel es)

Vielen Dank im Voraus.

Solutions Collecting From Web of "Wie verwende ich eine andere database, um Kommentare im Backend aufzulisten und zu verwalten?"

Sie können die query filtern. Siehe wpdb::query() in wp-includes/wp-db.php .

Sie erhalten die vollständige SQL-Zeichenfolge als Parameter. Suchen Sie dann nach Abfragen für die Kommentartabelle:

 add_filter( 'query', function( $query ) { global $wpdb; if ( FALSE === stripos( $query, "FROM $wpdb->comments" ) return $query; // Now change the SQL }); 

Aber Sie müssen alle JOINs auch mit anderen Tabellen fangen. Nicht sicher, ob dies auf elegante Weise möglich ist.

Das Problem mit dem Versuch, den gesamten databasezugriff zu untergraben, besteht darin, dass WP auch auf einer Seite, die sich mit Kommentaren beschäftigt, weiterhin Abfragen für andere Daten benötigt und durchführt. Die Herausforderung ändert sich nicht so sehr, wo die Anfrage hingeht, sondern ändert sich, ohne dass alles auseinander fällt.

Ihre beste Chance ist es wahrscheinlich, eine Lösung für Sharing auf WP-Ebene (wie HyperDB oder SQL-Ebene) zu versuchen.

PS, es würde helfen, mögliche Alternativen vorzuschlagen, wenn Sie Kontext enthalten, warum brauchen Sie (oder denken Sie, dass Sie brauchen) separate Tabelle für Kommentare. Es gibt Leute, die Erfahrung im Umgang mit großen Installationen haben und wahrscheinlich eine präzisere Antwort als die generische Theorie haben.