Was macht wp_update_post (), dass die class $ wpdb nicht funktioniert?

Ich musste kürzlich meine wp_posts Tabelle wp_posts von einem WordPress Plugin wp_posts . Ich habe zuerst versucht, dies mit wp_update_post() zu tun, und dachte, dass würde es tun. Anscheinend kann wp_update_post() nur einen vordefinierten Satz von Tabellenfeldern bearbeiten (vermutlich die Standard-WP-Dateien). Dann bin ich auf $wpdb class $wpdb . Ich dachte, ich lese, dass wp_update_post() $wpdb was interessant ist, aber dann stellt sich die Frage, warum wp_update_post() wenn Sie nur die $wpdb class direkt verwenden können? Was macht wp_update_post() , dass die $wpdb nicht tut? Was braucht es? Oder ist es eher ein Verwaltungsanliegen wie Ressourcen oder Sicherheit? Wenn das der Fall ist, was sind die Nachteile der direkten Verwendung von $ wpdb?

Solutions Collecting From Web of "Was macht wp_update_post (), dass die class $ wpdb nicht funktioniert?"

  1. wp_update_post() ruft einige Hooks auf, die $wpdb nicht selbst besitzt. Sie müssen es selbst machen, um es mit anderen Plugins kompatibel zu machen.

  2. wp_update_post() ruft einige functionen auf, die mit databaseeinträgen, Thumbnails, Anhängen, Zeit (Format, Zone usw.), Kommentar, Taxonomie, Meta, Cache usw. in Verbindung stehen. Wenn Sie also $wpdb , sollten Sie alle entsprechend behandeln .

  3. WordPress wird wp_update_post() aktualisieren, um es immer kompatibel zu halten mit dem aktuellen Status der database, Core CODE, Plugin-Unterstützung usw. Auch wenn Sie alles richtig machen, werden zukünftige Updates für Sie mit $wpdb schwierig $wpdb .

Wenn also etwas mit wp_update_post() erledigt werden kann, dann benutze es immer, benutze $wpdb nur $wpdb wenn deine gewünschte Aktion $wpdb der Aktualisierung von Post nicht damit erledigt werden kann.

Warum haben Sie WP_Query (), wenn Sie einfach WPDB verwenden können?

Die Idee ist, dass diese functionen es einfacher und schneller machen, Daten basierend auf Schlüsselwörtern zu ziehen, anstatt SQL-Abfragen zu schreiben. Die functionen selbst erzeugen das notwendige SQL, um die gewünschten Daten zu ziehen, was wiederum die Entwicklung beschleunigt.

Die referenzierte Frage bezüglich wp_update_post() und vordefinierten Feldern wp_update_post() 2 Felder, die nicht Teil einer Standard-WordPress-Installation sind, nämlich group_access und tag_list . Die function wp_update_post() wird alle integrierten Felder gut treffen.

Die Nachteile von $wpdb sind, dass Sie SQL kennen müssen und Sie müssen sich der normalen Datenbereinigung bewusst sein und wann prepare() und welche functionen Ihre Aussage bereits vorbereiten, welche kaum Nachteile haben. Die $wpdb class ist von Natur aus leistungsstärker als die Standard-WordPress-functionen, da Sie Zugriff auf alle Daten haben, $wpdb Sie das richtige SQL zum Abrufen, Ändern oder Entfernen kennen.

TL; DR $wpdb ist leistungsfähiger, aber weniger freundlich und errorsverzeihend.

An die meisten API-functionen sind entweder / beide Aktionen und Filter angefügt. Andere Plug-ins oder Designs haben möglicherweise Code an diese Aktionen angehängt, der nicht ausgetriggers wird, wenn Sie Tabellen direkt hinzufügen / aktualisieren.

Beispiel: Ein Cache-Plug-in bedient Seiten aus dem Cache und aktualisiert den Cache nur, wenn ein Beitrag aktualisiert wird. Sie aktualisieren die Postdaten direkt und der Cache stellt weiterhin die alte Version bereit, da nichts die Aktualisierungsaktion ausgetriggers hat.