Отключить многосайтовый URL-адрес мультимедиа WordPress - PullRequest
0 голосов
/ 17 мая 2019

Я использую DigitalOcean Spaces для хранения своих статических ресурсов.Все работает нормально, URL-адрес моей библиотеки мультимедиа указывает на мои пробелы (например, foobar.sgp1.digitaloceanspaces.com).

Проблема начинается, когда я устанавливаю мультисайт, так как по умолчанию WordPress добавляет «sites / xxx»на все ссылки на медиа-сайты на суб-сайте (например, foobar.sgp1.digitaloceanspaces.com/sites/2).Что, конечно, мои активы не там, и не могут быть найдены.

Я нашел эту ссылку:

https://wordpress.stackexchange.com/questions/307530/remove-multisite-part-from-wordpress-multisite-upload-directory

которая дала мне идею.

Я пробовал это на functions.php

add_filter('upload_dir', 'multisite_path');

function multisite_path( $param ){
    $path = str_replace('sites/2/', '', $param['path']);
    $url = str_replace('sites/2/', '', $param['url']);
    $param['path'] = $path;
    $param['url'] = $url;

    return $param;
}

Но это не работает.

Если есть хук для удаления "sites / 2 /" изURL или любой другой способ отключить эту функцию, я открыт для предложений.

Спасибо.

1 Ответ

0 голосов
/ 27 мая 2019

Нашел решение здесь:

WordPress для удаления нескольких сайтов / sites / {ID} / URL-адрес автоматической загрузки

Вот рабочий код:

add_filter( 'upload_dir', 'same_upload_dir' );
function same_upload_dir( array $uploads ) {
    $baseurl = WP_CONTENT_URL . '/uploads';
    $basedir = ABSPATH . 'wp-content/uploads';
    $subdir = $uploads['subdir'];

    return array(
        'path'    => $basedir . $subdir,
        'url'     => $baseurl . $subdir,
        'subdir'  => $subdir,
        'basedir' => $basedir,
        'baseurl' => $baseurl,
        'error'   => false,
    );
}
...