Cómo configurar el directorio de carga personalizado por usuario después de mover el directorio de contenido

2

Configuro el contenido y el directorio de wordpress de wordpress como se describe en el códice :

define('WP_SITEURL', 'https://' . $_SERVER['SERVER_NAME'] . '/wordpress');
define('WP_CONTENT_DIR', dirname(__FILE__) . '/content');

Ahora lo que quiero hacer es establecer un directorio de carga individual para cada usuario, como este:

wpinstance.org/content/uploads/user-name/here-goes-the-file.jpg

Ya probé mucho usando

define( 'UPLOADS', dirname(__FILE__) . '/content/uploads'.$current_user->user_name.'/');

así como muchas combinaciones sin dirname() y así sucesivamente. Todo resultó llevar los archivos a wordpress/…something y dejar la parte del nombre de usuario vacía. Entonces, ¿cómo puedo lograr esto? ¿Alguna idea?

    
pregunta mcnesium 23.01.2015 - 16:13

1 respuesta

4

Con créditos para petermolnar a través de irc://freenode.net/wordpress , puedo responder mi propia pregunta. La clave es establecer un filtro upload-dir en el functions.php del tema:

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');
    
respondido por el mcnesium 26.01.2015 - 13:28

Lea otras preguntas en las etiquetas