Je mets le contenu et le répertoire wordpress de wordpress comme décrit dans le codex :
define('WP_SITEURL', 'https://' . $_SERVER['SERVER_NAME'] . '/wordpress');
define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');
Maintenant, ce que je veux faire est de définir un répertoire de téléchargement individuel pour chaque utilisateur, comme ceci:
wpinstance.org/content/uploads/user-name/here-goes-the-file.jpg
J'ai déjà beaucoup essayé avec
define( 'UPLOADS', dirname(__FILE__) . '/content/uploads'.$current_user->user_name.'/');
ainsi que de nombreuses combinaisons sans dirname()
et ainsi de suite. Il s’est avéré que tous les fichiers étaient jusqu’à wordpress/…something
et que la partie du nom d’utilisateur était vide. Alors, comment puis-je y parvenir? Des idées?
Avec des crédits à petermolnar via irc://freenode.net/wordpress
, je peux répondre à ma propre question. La clé consiste à définir un filtre upload-dir
dans le functions.php
du thème:
function per_user_upload_dir( $original ){
// use the original array for initial setup
$modified = $original;
// set our own replacements
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$subdir = $current_user->user_login;
$modified['subdir'] = $subdir;
$modified['url'] = $original['baseurl'] . '/' . $subdir;
$modified['path'] = $original['basedir'] . DIRECTORY_SEPARATOR . $subdir;
}
return $modified;
}
add_filter( 'upload_dir', 'per_user_upload_dir');
function per_user_upload_dir( $original ){
// use the original array for initial setup
$modified = $original;
// set our own replacements
if ( is_user_logged_in() ) {
$current_user = wp_get_current_user();
$subdir = $current_user->user_login;
$modified['subdir'] = $subdir;
$modified['url'] = $original['baseurl'] . '/' . $subdir;
$modified['path'] = $original['basedir'] . DIRECTORY_SEPARATOR . $subdir;
}
return $modified;
}
add_filter( 'upload_dir', 'per_user_upload_dir');
cela a fonctionné pour moi ... mais est-il possible de créer un autre sous-dossier pour tous les utilisateurs, comme uploads/users /? je veux garder tout le contenu des utilisateurs dans le dossier des utilisateurs sous le répertoire de téléchargement