web-dev-qa-db-fra.com

Changer le répertoire par défaut de Media Uploader

J'utilise WordPress Media Library dans mon plugin dans le backend. Comment changer le chemin de téléchargement pour cela dynamiquement? Cela peut-il être fait pendant la mise en file d'attente ou lors de sa création en JavaScript?

J'utilise wp_enqueue_media() dans l'action admin_enqueue_scripts et, plus tard, je crée le cadre multimédia en Javascript avec wp.media.

J'ai réussi à changer le répertoire lors du téléchargement à l'aide du filtre plupload_default_params, mais je ne sais pas comment raccorder l'action query-attachments qui interroge les fichiers dans la bibliothèque.

Mise à jour: Après des heures de bricolage, j'ai abandonné et je suis parti avec une solution différente. J'ajoute un nouveau paramètre sur la page d'édition du plugin et le réinitialise sinon. De cette façon, je peux accéder à l'option dans les appels ajax.

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 

Et dans la construction du plugin:

    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(), '' );
        }
    }

Cela fonctionne correctement, sauf si l'utilisateur ouvre un nouvel onglet et que le paramètre est réinitialisé. C'est bien pour l'instant, mais j'aimerais vraiment savoir s'il existe un moyen plus facile de le faire.

6
Mateusz Bartkowski

Pourrait vouloir regarder

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

En définition, il existe un hook upload_dir, que vous pouvez utiliser pour changer path.

Je n'ai pas essayé ou testé, mais vous pouvez l'essayer.

1
Aniruddha Gawade

Afin de modifier l'emplacement de téléchargement de média par défaut, vous devez éditer le fichier wp-config.php situé dans le répertoire racine de votre installation WordPress. Si vous voulez que le répertoire de téléchargement soit wp-content/files, vous devrez alors placer le code suivant dans wp-config.php

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

Si vous voulez que le répertoire de téléchargement soit en dehors de wp-content, comme http://www.example.com/files/, vous devez définir le chemin de téléchargement dans wp-config.php comme ceci:

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

N'oubliez pas que vous pouvez toujours choisir si vous voulez ou non que les fichiers téléchargés soient organisés en dossiers mois/année dans Paramètres "Médias .

Référence des fonctions/wp_upload_dir - WordPress Codex

0
Mark Wilson