it-swarm.com.de

Ändern Sie das Standardverzeichnis von Media Uploader

Ich verwende WordPress Media Library in meinem Plugin im Backend. Wie ändere ich den Upload-Pfad dafür dynamisch? Kann dies während der Enqueue oder beim Erstellen in JavaScript erfolgen?

Ich verwende wp_enqueue_media() in admin_enqueue_scripts und erstelle später den Medienrahmen in Javascript mit wp.media.

Ich habe es geschafft, das Verzeichnis beim Hochladen mit dem plupload_default_params-Filter zu ändern, aber ich weiß nicht, wie ich mich in die query-attachments-Aktion einbinden kann, mit der die Dateien in der Bibliothek abgefragt werden.

Update: Nach stundenlangem Basteln gab ich auf und ich ging mit einer anderen Lösung. Ich füge eine neue Einstellung auf der Bearbeitungsseite des Plugins hinzu und setze sie ansonsten zurück. Auf diese Weise kann ich in Ajax-Aufrufen auf die Option zugreifen.

function change_upload_dir( $args ) {
        $user_id = get_current_user_id();
        $form = false;
        if( defined('DOING_AJAX') && DOING_AJAX ) {
            $form = get_option( 'test_edit_' . $user_id );
        }
        if($form || isset($_GET['type']) || isset($_POST['subfolder'])) {
            // change upload path 

Und im Plugin-Konstrukt:

    if( !(defined('DOING_AJAX') && DOING_AJAX) 
       && false === strpos($_SERVER['REQUEST_URI'], 'wp-content') ) {
        $edit = get_option( 'test_edit_' . get_current_user_id() );
        if ( $edit && $edit != '' ) {
            update_option( 'test_edit_' . get_current_user_id(), '' );
        }
    }

Dies funktioniert einwandfrei, es sei denn, der Benutzer öffnet eine neue Registerkarte und die Einstellung wird zurückgesetzt. Es ist in Ordnung für den Moment, aber ich würde wirklich gerne wissen, ob es einen einfacheren Weg gibt, das zu tun.

6

Könnte ich sehen wollen

https://developer.wordpress.org/reference/functions/wp_upload_dir/

In der Definition gibt es einen Hook upload_dir, mit dem Sie path ändern können.

Sie haben es noch nicht ausprobiert oder getestet, aber Sie können es versuchen.

1

Um den Standardspeicherort für das Hochladen von Medien zu ändern, müssen Sie die Datei wp-config.php bearbeiten, die sich im Stammverzeichnis Ihrer WordPress-Installation befindet. Wenn Sie möchten, dass das Upload-Verzeichnis wp-content/files ist, müssen Sie den folgenden Code in wp-config.php einfügen.

define( 'UPLOADS', 'wp-content/'.'files' );

Wenn sich das Upload-Verzeichnis außerhalb von WP-Inhalten befinden soll, z. B. http://www.example.com/files/, müssen Sie den Upload-Pfad in wp-config.php wie folgt festlegen:

define( 'UPLOADS', ''.'files' );

Denken Sie daran, dass Sie weiterhin wählen können, ob hochgeladene Dateien in Monats-/Jahresordnern unter Einstellungen "Medien gespeichert werden sollen.

Funktionsreferenz/wp_upload_dir - WordPress Codex

0
Mark Wilson