WordPress как на ладони
Недорогой хостинг для сайтов на WordPress: wordpress.jino.ru

Один путь к медиафайлам для сайтов в режиме Multisite

Установлен режим мультисайт на поддоменах. Для основного сайта site.com загружены изображения в папку site.com/wp-content/uploads. Загрузку в папки по дате отключил в меню.

При импорте статей для поддомена sub.site.com изображения обрабатываются заново и складываются в папку /wp-content/uploads/sites/2

А так как изображения те же, то нет смысла дважды их обрабатывать и удваивать размеры сайта.

Попробовал такое решение. Для поддомена sub.site.com прописываю в настройках по адресу https://site.com/wp-admin/network/site-settings.php?id=2:

Upload Path: /wp-content/uploads
Upload Url Path: https://sub.site.com/wp-content/uploads

При этом во время импорта в папке /wp-content/uploads/sites/2 изображения не появляются, импорт проходит успешно, но на самом sub.site.com изображений нет, поскольку в пути к ним прописано /wp-content/uploads/sites/2 вместо /wp-content/uploads.

Подскажите пожалуйста, возможно ли решить эту проблему? И если да, то как?

Решение

P.S. Вопрос удалять не буду, вдруг кому-то ещё поможет. Для себя нашёл такое решение: симлинк на папку uploads. Если грубо, то симлинк это ярлык в linux. Далее по пунктам что было сделано:

  1. В настройках поддомена очищены поля Upload Path и Upload Url Path.

  2. В functions.php добавлено:

    add_filter( 'upload_dir', 'my_custom_upload_directory' );
    function my_custom_upload_directory( $directory ) {
    
    	$subdirectory = '';
    
    	$originaldir = $directory;
    
    	$directory['subdir'] = $subdirectory;
    	$directory['path'] = $originaldir['basedir'] . $subdirectory;
    	$directory['url'] = $originaldir['baseurl'] . $subdirectory;
    
    	return $directory;
    }
  3. После выполнения предыдущего пункта, при импорте статей на поддомен, вордпресс отмечал, что медиафайлы для статей уже загружены. Но в самих статьях картинки не отображались, потому что в пути у них оставался sites/2/.

    Симлинк создаётся из терминала командой (у меня путь к папкам был примерно такой, поправьте пути перед применением):

    ln -s /var/www/user/data/www/site.com/wp-content/uploads /var/www/user/data/www/site.com/wp-content/uploads/sites/2

    Если смотреть на фтп, то после выполнения команды в папке sites появляется ярлык папки "2".
    После того как создал симлинк, картинки сразу же стали отображаться на поддомене.

1
futu
1 месяц назад

Нет ответов на этот вопрос.

    На вопросы могут отвечать только зарегистрированные пользователи. Вход . Регистрация