web-dev-qa-db-fra.com

Media Uploader dans un chemin personnalisé

Je crée un générateur CSS dans mon thème WordPress et je souhaite également pouvoir enregistrer des skins personnalisés avec des images. Mon problème est que j'ai une hiérarchie comme/skins/custom-skin/images pour les images téléchargées, mais comme vous le savez, WordPress Media Uploader les place dans le dossier de téléchargement par défaut, triées par date.

Ma question est la suivante: puis-je spécifier un chemin pour enregistrer l'image à chaque fois qu'une nouvelle image est téléchargée?

1
SpyrosP

Dans,

Dashboard -> Settings -> Media

Vous pouvez décocher la,

Organize my uploads into month- and year-based folders

... et éventuellement changer le chemin des téléchargements (mais cela affecterait bien sûr tous les téléchargements).

Vous pouvez éventuellement vous connecter au filtre upload_dir et modifier le chemin de téléchargement pour un post_type donné ou pour un autre scénario donné, en fonction de l'emplacement et des conditions dans lesquelles vous effectuez ces téléchargements.

add_filter( 'upload_dir', 'css_upload_dir' );

function css_upload_dir(){

    global $post;
    $post_id = $post->ID;
    $upload = wp_upload_dir();

    if( "post_type" == get_post_type($post_id) ){

        $custom_dir     = '/skins/custom-skin/images';
        $upload['path'] = $upload['basedir'] . $custom_dir;
        $upload['url']  = $upload['baseurl'] . $custom_dir;

        return $upload;
    }
}

Cela devrait fonctionner, même si je ne l'ai pas encore testé, je passe donc au début ma tête pour le moment.

2
userabuser