WordPress : Media Uploader dans un chemin personnalisé

Publié par Jean-Michel le

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 par défaut dans le dossier des téléchargements, triés par date.

Lire également:  Afficher les 6 meilleurs articles dans différents blocs de la page d'accueil Wordpress ?

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 ?

Solution n°1 trouvée

Dans,

Dashboard -> Settings -> Media

Vous pouvez décocher le,

  ?Organize my uploads into month- and year-based folders

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

Lire également:  Ma compréhension des thèmes wordpress est-elle correcte ?

Vous pouvez éventuellement vous connecter au upload_dirfiltre et modifier le chemin de téléchargement pour un fichier donné post_typeou pour un autre scénario donné en fonction de l’endroit 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, bien que je ne l’aie pas testé, donc je vais au-dessus de ma tête pour le moment.

Catégories : Wordpress

Jean-Michel

Jean-Michel est en charge de la partie blog du site. Il met en place la stratégie de contenu et répond aux questions fréquentes sur Wordpress.

0 commentaire

Laisser un commentaire

Avatar placeholder

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *