Папка wp-content
WordPress состоит из 3 папок wp-includes
, wp-admin
, wp-content
и из нескольких файлов рядом с этими папками.
Все файлы и папки, кроме wp-content
— это и есть WordPress, движок. Т.е. каталоги: wp-includes
и wp-admin
— это ядро WordPress, а wp-content
— это все остальное — все пользовательские данные…
В директории wp-content
хранятся практически все пользовательские файлы, кроме файла конфигурации wp-config.php (это неотъемлемая часть ядра). Здесь находятся плагины, темы, файлы плагинов, тем и содержимого сайта. Тут же принято хранить все файлы связанные с расширением возможностей WordPress.
Исходно в WordPress, wp-content
содержит один файл index.php и 3 папки: plugins, themes, languages.
Файл wp-content/index.php
Всегда должен существовать и должен иметь такое содержимое:
<?php // Silence is golden.
Этот файл запрещает видеть список файлов в папке. Если index.php не существует, а ваш веб-сервер позволяет смотреть файлы в директориях, то пройдя по ссылке http://example.com/wp-content
, можно увидеть все файлы и папки в этой директории. Это могут использовать хакеры, чтобы получить доступ к файлам ключей, что позволит взломать сайт. Например, если у вас установлен уязвимый плагин, то сайт можно будет легко проверить на наличие этого уязвимого плагина, а дальше атакующий без особого труда сможет сломать сайт.
При обновлении WordPress вручную, никогда не трогайте папку wp-content и ничего в ней. Она к обновлению WordPress никакого отношения не имеет.
Список того, что может находиться в каталоге wp-content:
/mu-plugins — обязательные плагины
В WordPress есть «Обязательные плагины», они находится в директории wp-content/mu-plugins
. О них я писал отдельно, обязательно ознакомьтесь!
Коротко об обязательных плагинах: Обязательные к использованию плагины (Must-use plugins), известные также под названием mu-plugins — это плагины, которые устанавливаются в специальную папку mu-plugins в каталоге контента wp-content и активируются автоматически (всегда активны) для сайта и сайтов сети. Эти плагины не видно среди обычных плагинов. В админ-панели они отображаются в верхней информационной строке и их невозможно отключить, кроме как удалить файл плагина из каталога wp-content/mu-plugins
.
/plugins — плагины
Плагины находятся в директории wp-content/plugins
. Плагин может представлять собой один файл или несколько файлов внутри папки. Любые файлы в директории /plugins
сканируются WordPress, чтобы определить, является ли файл файлом плагина. Если файл определяется как плагин, он появляется в админ-панели в разделе «Плагины» и готов к активации.
Для деактивации плагина можно удалить плагин из папки /plugins
. Также можно переименовать название папки, в этом случае, WordPress просто не сможет найти файл плагина и деактивирует при попытке подключения. Но имейте ввиду, что плагины лучше удалять из админ-панели, через кнопку Удалить, потому что при удалении срабатывают некоторые функции, которые подчищают данные плагина в базе данных или в файлах.
/themes — темы
Темы хранятся в директории wp-content/themes
. Каждая тема должна находиться в собственной папке и содержать правильно оформленный файл style.css, чтобы WordPress распознал ее как тему, пригодную для использования. В директории темы должны находиться как минимум 2 файла: index.php и style.css.
WordPress может хранить в этой директории сколько угодно тем. Вы можете легко посмотреть любую имеющуюся тему или активировать её во вкладке Внешний вид ► Темы
в админ-панели.
/uploads — медиафайлы и загрузки
WordPress хранит загруженные файлы в папке wp-content/uploads
. Эта директория не существует в дистрибутиве WordPress по умолчанию. Она создается при первой загрузке файла в WordPress. Отдельное создание необходимо, потому что эта папка может быть перемещена в другое место (см. ниже)
По умолчанию WordPress хранит загрузки в папках по годам и месяцам:
/wp-content/uploads/2012/06/image.png
Перед тем как можно будет загружать какие-либо изображения или файлы в WordPress, на сервере необходимо разрешить создание папок в директории /wp-content
. При загрузке первого изображения WordPress автоматически создает директорию /uploads
и необходимые поддиректории в ней. После того как первый файл загружен, верните права для /wp-content обратно, обычно 755. Некоторые серверы сразу позволяют скрипту создавать папки и файлы.
Директория uploads должна иметь все права, чтобы в ней можно было свободно создавать и удалять файлы, обычно это права 777.
WordPress НЕ умеет распознавать и импортировать в админку изображения загруженные в uploads напрямую (не через админку). И в библиотеке файлов WordPress такие файлы не отображаются — WordPress о них ничего не знает.
uploads в Multisite
В Multisite установке для основного сайта фалы загружаются как обычно. А для всех дополнительных сайтов, создается папка /wp-content/uploads/sites/2
, где 2 — это ID сайта сети.
Так для каждого сайта создается папка с его ID в папке /wp-content/uploads/sites
. Далее файлы также располагаются в папках по году и месяцу.
Такой подход позволяет разделить загрузки для каждого сайта и упрощает их обслуживание.

До версии WP 3.5 файлы дополнительных сайтов располагались не в /wp-content/uploads/sites
, а в /wp-content/blogs.dir
.
Так например, директория для сайта с ID 3 выглядит так:
- WP 3.5 и выше:
/wp-content/uploads/sites/3
- WP 3.4 и ниже:
/wp-content/blogs.dir/3
Перемещение папки uploads
Чтобы переместить папку uploads
нужно определить константу UPLOADS в wp-config.php так:
define('UPLOADS', 'uploads'); // значит что папка uploads должна лежать в корне сайта
Или можно изменить опции: upload_path
и upload_url_path
в таблице опций (см. update_option()).
Перемещать папку uploads
не рекомендуется, об этом я писал в статье: Баг с перемещением папки uploads.
/upgrade — автообновления
Директория wp-content/upgrade
создается WordPress автоматически при обновлении WordPress. Эта папка используется для хранения новой версии WordPress, скачанной с WordPress.org. Перед обновлением, WordPress скачивает архив и извлекает его содержимое в эту папку. Чтобы процесс автоматического обновления протекал успешно, рекомендуется не трогать эту папку. Если данная директория удалена, WordPress создаст её при следующем обновлении.
/languages — переводы
Каталог wp-content/languages
присутствует только в том случае, если вы устанавливаете не английскую версию WordPress. В нем содержаться все файлы локализации (перевода) WordPress. Такие файлы имеют расширения:
.mo
— сжатая версия аналогичного .po файла, которая используется при переводе;.po
— исходный файл перевода. Этот файл можно использовать для редактирования перевода. После редактирования его нужно скомпилировать в сжатую версию с расширением.mo
.
Также в languages
могут находиться специальные поддиректории:
/pliugns
— содержит переводы плагинов. Файл перевода должен иметь формат:название плагина-локаль.mo
, например:akismet-ru_RU.mo
. Перед загрузкой своего файла перевода, плагин проверяет наличие файла перевода в этой папке и если он там есть, то используется этот файл перевода, а не родной перевод плагина./themes
— содержит переводы тем. Файл перевода должен иметь формат:название темы-локаль.mo
, например:twentyfifteen-ru_RU.mo
. Также как и с плагинами — эти файлы имеют больший приоритет перед родными файлами перевода темы.