Использование одного и того же каталога для хранения всех загруженных изображений в сети WordPress

В настоящее время я использую сеть WordPress для запуска нескольких сайтов, которые используют один и тот же шаблон, плагины и изображения. Поскольку сообщения появляются на нескольких сайтах, имеет смысл только загружать изображения в одно место (и иметь одну копию изображения), а не несколько.

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

Исходная информация

Я использую WPThree Broadcast для «трансляции» изображения на нескольких сайтах, а также для копирования изображений в соответствующие библиотеки изображений. Я не хочу, чтобы сервер был загроможден десятью копиями одного и того же изображения, поэтому вместо этого проверяю, находится ли изображение уже в таблице wp_posts сайта, а затем, если не копировать данные post и post_meta в таблицы этого сайта.

Тем не менее, я не хочу копировать фактическое изображение в новую папку для загрузки, поскольку WP настроен по умолчанию (например, в /wp-content/blogs.dir/2/files/ ), поэтому вместо этого хочу, чтобы все изображения были загружаться в /wp-content/uploads/ , папку загрузки по умолчанию для стандартной установки WP.

Solutions Collecting From Web of "Использование одного и того же каталога для хранения всех загруженных изображений в сети WordPress"

Вы можете довольно просто добавить некоторые действия для их архивирования.

 function wpse_16722_main_uploads() { switch_to_blog(1); } add_action('load-media-new.php', 'wpse_16722_main_uploads'); add_action('load-media-upload.php', 'wpse_16722_main_uploads'); add_action('load-media.php', 'wpse_16722_main_uploads'); add_action('load-upload.php', 'wpse_16722_main_uploads'); add_action('admin_init', 'wpse_16722_main_uploads'); 

Это изменит текущий суб-блог для пользователя вашего основного сайта с помощью switch_to_blog и, конечно же, вы хотите, чтобы главная сторона была с идентификатором 1.

Вы также можете добавить функцию для перезаписи папки для загрузки только для / без добавления субдисков:

 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' ); 

В статье «Как изменить расположение загрузки по умолчанию в WordPress 3.5» редакционным персоналом они показывают, как изменить каталог загрузки в wp-config.php :

 define( 'UPLOADS', 'wp-content/'.'files' );