it-swarm.com.de

Freigegebener Upload-Ordner in WordPress Multisite

Ich habe eine WordPress-Multisite, auf der ich möchte, dass alle über die Hauptseite (mysite.com) hochgeladenen Bilder für sub1.mysite.com und sub2.mysite.com zugänglich sind. Alle Bilder sollten sich in einem Ordner ohne Unterverzeichnis befinden (z. B .: wp-content/uploads/image.jpg). Ich habe die unten stehende Funktion ausprobiert, aber meine Bilder für Subdomains werden auf wp-content/uploads/sites/#blog_id/ hochgeladen.

function wpse_16722_upload_dir( $args ) {
    $newdir = '/';

    $args['path']    = str_replace( $args['subdir'], '', $args['path'] ); //remove default subdir
    $args['url']     = str_replace( $args['subdir'], '', $args['url'] );      
    $args['subdir']  = $newdir;
    $args['path']   .= $newdir; 
    $args['url']    .= $newdir; 

    return $args;
}
add_filter( 'upload_dir', 'wpse_16722_upload_dir' );
3
Totem

Dadurch werden Uploads für alle Sites in das Verzeichnis wp-content/uploads erzwungen. Unterverzeichnisse (wie year/month) bleiben bestehen (wenn die Einstellung aktiviert ist).

/**
 * Force all network uploads to reside in "wp-content/uploads", and by-pass
 * "files" URL rewrite for site-specific directories.
 * 
 * @link    http://wordpress.stackexchange.com/q/147750/1685
 * 
 * @param   array   $dirs
 * @return  array
 */
function wpse_147750_upload_dir( $dirs ) {
    $dirs['baseurl'] = network_site_url( '/wp-content/uploads' );
    $dirs['basedir'] = ABSPATH . 'wp-content/uploads';
    $dirs['path'] = $dirs['basedir'] . $dirs['subdir'];
    $dirs['url'] = $dirs['baseurl'] . $dirs['subdir'];

    return $dirs;
}

add_filter( 'upload_dir', 'wpse_147750_upload_dir' );
7
TheDeadMedic