Das Problem: Website mit über 100 Fotos pro Beitrag. Könnte möglicherweise die Post-Tabelle innerhalb weniger Jahre über 100.000 Einträge hinaus anschwellen lassen.
Das Dilemma: Ich würde mich lieber an die Standard-WP-Benutzeroberfläche halten, um Bilder / Dateien mit dem integrierten Uploader "Medien hinzufügen" zu verarbeiten. Ich möchte nach Möglichkeit die Verwendung einer separaten Dateigalerie-Implementierung vermeiden.
Die Frage: Hat jemand eine Möglichkeit gefunden, das Speichern von Daten von der posts_table in Ihre eigene benutzerdefinierte Tabelle umzuleiten, um die Dateidaten zu speichern? (ohne Kerndateien hacken zu müssen)
Antworten:
Möglicherweise gibt es eine überschaubare Möglichkeit, die Bilder vom Speichern als Anhänge (auch als Posts bezeichnet) zum Speichern in einem Array zu verschieben, das auf der Ebene der übergeordneten Posts gespeichert wird. Ich denke, es wird davon abhängen, wie viel Sie brauchen, um die Bilder zu manipulieren, zu löschen usw.
Ein Wechsel zu einem anderen Tisch könnte helfen, aber es scheint mir, dass Sie Peter ausrauben, um Paul zu bezahlen. Sicher, größere Tabellen tun weh, aber wenn diese Zeilen woanders sind und Sie noch einen Join usw. benötigen, wie viel wird gespart? Ich denke, Sie müssen möglicherweise etwas mehr aus dem Rahmen werfen, um diese Nuss zu knacken.
quelle
Sie können manuell eine neue Tabelle in Ihrem phpMyAdmin auf dem Server erstellen (es ist offensichtlich Ihre Site, dass Sie nicht häufig auf einen neuen Server wechseln) oder natürlich die Tabellenerstellung mit einer Themeninstallation oder ähnlichem verknüpfen. Wordpress verwendet das Objekt / die Klasse $ wpdb, um eine Abfrage in der Wordpress-Datenbank durchzuführen . Dort können Sie sehen, wie Sie eine Abfrage in der WP-Datenbank ausführen. Also würde ich so etwas verwenden:
Sie können es in eine Funktion einfügen und es beispielsweise mit theme_init oder ähnlichem verknüpfen. Ändern Sie die Felder nach Ihren Wünschen. Ein anderer Weg ist dbDelta () Funktion, die einige spezifische Regeln hat und weil der , dass ich den richtigen Grund der Verwendung es nicht sehen (vielleicht einige da ist und ich bin falsch) - Sie können alles darüber finden hier (I Ich kann wegen Wiederholung keine weiteren Permalinks setzen. Entschuldigung: D)
Nachdem Sie die Tabelle erstellt haben, können Sie sie beliebig bearbeiten. Sie können die Registrierung dieser Anhänge in eine neue Tabelle einbinden. Sie können auch eine Funktion einbinden, die verhindert, dass Anhänge in die Posts-Tabelle eingefügt werden. Aufgrund der geringen Anzahl von Spalten (wie zum Beispiel Postmeta-Tabellen) ist es meiner Meinung nach leicht und daher muss die Manipulation bei der Bearbeitung dieser Bilder verbessert werden.
quelle
dbDelta()
für diese Aufgabe.Ich nehme an, wenn Sie die Informationen wirklich in einer anderen Tabelle speichern möchten, könnten Sie dies tun, aber das Problem besteht darin, dies sofort zu verwalten. Das Hinzufügen von Details wie der Post-ID ist einfach, da dies Teil des globalen Post-Objekts ist Die Bild-URL (für eine gerade hochgeladene Datei) ist nicht.
Das Problem ist, dass die Medien über die integrierte WordPress-Benutzeroberfläche in eine eigene Tabelle aufgenommen werden müssen, indem sie mit dem Medien-Uploader hochgeladen werden müssen, der Zeilen in der Beitragstabelle als Anhangstypen erstellt, wodurch das ursprüngliche Ziel verfehlt wird .
Um Zeilen aus anderen Tabellen zu entfernen, wenn ein Beitrag gelöscht wird, können Sie Folgendes tun:
Weitere Informationen zu den Hooks erhalten Sie hier: http://codex.wordpress.org/Plugin_API/Action_Reference/
quelle
Könnten Sie versuchen, ein Plugin zu verwenden? Ich habe Typen von wp-types.com verwendet und es ist ein Vergnügen für Bilder. Es speichert alle Informationen als Metadaten und ermöglicht es Ihnen, alles auch über die Benutzeroberfläche zu verwalten:
http://wp-types.com/home/types-manage-post-types-taxonomy-and-custom-fields/
Als zusätzlichen Bonus werden alle Bilder dann auf dem Hauptbildschirm der Benutzeroberfläche angezeigt und nicht hinter der Schaltfläche zum Hinzufügen von Medien versteckt, was Benutzer, mit denen ich mich befasst habe, manchmal verwirrt. Es werden auch alle verschiedenen Miniaturbildgrößen erstellt. Wenn Sie alle Dateidaten als Post-Metadaten behalten, bedeutet dies, dass beim Entfernen von Bildern auch das Meta entfernt wird, wodurch die Datenbank aufgeräumt bleibt.
quelle
Sie haben erwähnt, dass Sie keine separate Galerie verwenden möchten, aber dies ist die richtige Methode, um dies zu erreichen. Wählen Sie eine Galerie und ein Plugin aus, mit dem Sie einen Beitrag entweder per Shortcode oder über ein benutzerdefiniertes Feld anhängen können. Auf diese Weise haben Sie die volle Kontrolle über die Beiträge und die Galerien. Sie können auch das erweiterte benutzerdefinierte Feld-Plugin (Repeater-Feld aktiviert) verwenden, um eine Galerie im benutzerdefinierten Feldbereich der Beiträge zu erstellen.
quelle