Ich möchte ein vorhandenes Forum-ähnliches Plugin anpassen, das keine Möglichkeit zum Anhängen von Medien bietet.
Das Plugin funktioniert als benutzerdefinierter Beitragstyp. Es ist also so "einfach" wie das Anhängen eines Bildes an einen Beitrag.
Ich mache mir nur Gedanken über das Anhängen von Bildern und nicht über irgendeinen Dateityp, aber das Plugin verwendet es wp_editor
und als solches sollte die Lösung in irgendeiner Weise in dieses integriert werden. Ich bin nicht übermäßig damit beschäftigt, eine tinyMCE-Schaltfläche zu erstellen, solange die Lösung in der Lage ist, eine Miniaturansicht des Bildes in den tinyMCE-Textbereich einzufügen.
Bitte beachten Sie, dass ich mich eher auf das Front-End meiner Website als auf den Admin-Bereich beziehe.
In einer absolut idealen Situation möchte ich, dass dieses Szenario auftritt:
- Benutzer klickt auf "Frage stellen"
- Verwendung gibt ihre Post-Details ein
- Der Benutzer klickt auf eine Schaltfläche auf der tinyMCE-Oberfläche, die den Benutzer ähnlich wie StackExchange auffordert, eine Datei hochzuladen.
- Das System fügt dann das Miniaturbild mit der richtigen Größe in den tinyMCE-Textbereich ein, nachdem die Datei auf diese Miniaturbildgröße gebracht wurde
- Das Klicken auf dieses Bild sollte dieselbe Funktionalität bieten wie ein Bildanhang in einem Beitrag
- Der Benutzer kann dann erneut klicken, um ein neues Bild einzufügen
- Der Benutzer kann das Bild bei Bedarf auch aus dem tinyMCE-Textbereich löschen
Ich freue mich jedoch, dass die tinyMCE-Schaltfläche peripher ist - wenn ein Feld zum Hochladen von Dateien erheblich einfacher ist, ist das in Ordnung.
Ich bin auf diesen Link gestoßen, aber ich bin immer besorgt darüber, WordPress-Artikel auf t'interwebs zu lesen, da ich nie sicher bin, wie sicher sie sind, und ich bin auch kein PHP-Sicherheitsexperte.
Danke im Voraus,
wp_editor()
Funktion bereits verwenden , verwenden Sie einfach die darin enthaltene Dickbox zum Hochladen von Medien. Ich habe daswp_editor
am Frontend nicht verwendet , aber es gibt einige Leute, die es erfolgreich mit Bild-Uploads zumwp_editor
die Medien-Uploads Benutzern jeder Ebene Zugriff auf meine gesamte Medienbibliothek gewähren würde? Ich möchte nicht, dass das überhaupt der Fall ist - nur damit sie ihre eigenen hochladen.media-upload.php
Quelle schon eine Weile nicht mehr angesehen, bin mir aber ziemlich sicher, dass es einen Filter für media_upload_tabs gibt, in dem Sie die Registerkarte "Medienbibliothek" deaktivieren können. Ich werde es mir ansehen und sehen ...Antworten:
Ich denke, der einfachste Weg, da Sie die
wp_editor
Funktion bereits verwenden , besteht darin, nur die Medientasten in die WP_Editor-Instanz aufzunehmen. Auf diese Weise sind die nativen Funktionen, einschließlich der Schaltfläche "In Beitrag einfügen", integriert kostenlos.Wie Sie dies tun, hängt natürlich von dem Plugin ab, mit dem Sie arbeiten möchten. Dies sollte Ihnen jedoch den Einstieg erleichtern. Fügen Sie Code wie diesen in eine Seitenvorlage ein, um den Editor anzuzeigen, und Sie erhalten einen Editor auf Ihrer Seite. Das Einfügen in ein Formular und das Verarbeiten der Ergebnisse ist ein weiterer Schritt, der hier nicht näher erläutert wird.
Das Definieren der Post-ID ist wahrscheinlich der entscheidende Teil, und wie Sie dies tun, hängt von der Logik Ihrer Funktionalität ab. Ich würde vorschlagen:
quelle
Vielleicht ist dies nicht Ihre ideale Lösung, aber es ist einen Versuch wert. Ich habe es durch googeln bekommen, aber leider habe ich die URL vergessen. Das anhängende Teil ähnelt dem im Artikel @goldenapples.
Hier ist die Grundfunktion.
Die Ajax-Funktion
Das Markup
Ich hoffe das hilft
quelle
wp_handle_upload
legt die hochgeladene Datei im Verzeichnis wp-content / uploads ab.wp_insert_attachment
fängt die Dateiinformationen ab und speichert sie als Anhang in der Tabelle wp_posts.wp_generate_attachment_metadata
undwp_update_attachment_metadata
tut was gesagt wird. Der zweite Teil ist die Ajax-Funktion, die das auf dem Markup angezeigte Formular mithilfe derattach uploads
Funktion verarbeitet.