wp content uploads что это
Папка wp-content
Все файлы и папки, кроме wp-content — это и есть WordPress, движок. Т.е. каталоги: wp-includes и wp-admin — это ядро WordPress, а wp-content — это все остальное — все пользовательские данные.
В директории wp-content хранятся практически все пользовательские файлы, кроме файла конфигурации wp-config.php (это неотъемлемая часть ядра). Здесь находятся плагины, темы, файлы плагинов, тем и содержимого сайта. Тут же принято хранить все файлы связанные с расширением возможностей WordPress.
Файл wp-content/index.php
Всегда должен существовать и должен иметь такое содержимое:
При обновлении WordPress вручную, никогда не трогайте папку wp-content и ничего в ней. Она к обновлению WordPress никакого отношения не имеет.
Список того, что может находиться в каталоге wp-content :
/mu-plugins — обязательные плагины
/plugins — плагины
/themes — темы
WordPress может хранить в этой директории сколько угодно тем. Вы можете легко посмотреть любую имеющуюся тему или активировать её во вкладке Внешний вид ► Темы в админ-панели.
/uploads — медиафайлы и загрузки
По умолчанию WordPress хранит загрузки в папках по годам и месяцам:
WordPress НЕ умеет распознавать и импортировать в админку изображения загруженные в uploads напрямую (не через админку). И в библиотеке файлов WordPress такие файлы не отображаются — WordPress о них ничего не знает.
uploads в Multisite
Такой подход позволяет разделить загрузки для каждого сайта и упрощает их обслуживание.
Так например, директория для сайта с ID 3 выглядит так:
Перемещение папки uploads
Чтобы переместить папку uploads нужно определить константу UPLOADS в wp-config.php так:
Или можно изменить опции: 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. Такие файлы имеют расширения:
Также в languages могут находиться специальные поддиректории:
Произвольные директории
В /wp-content можно создавать любые директории. Некоторые плагины, создают такие папки для хранения файлов. Обычно отдельная папка создается, когда нужно хранить много файлов или когда хранимые файлы как-то отличаются от остальных.
Например плагин WP Super Cache создает директорию /wp-content/cache для хранения кэшированных страниц сайта. Кэшированная страница — это сгенерированная страница сайта, сохраненная как статический файл HTML. При обращении к такой странице она не генерируется повторно, а отдается статический файл. Это и есть страничный кэш, который уменьшает нагрузку сервера в десятки раз, поскольку страницы не генерируются при каждом просмотре, а создаются только когда кэш перезаписывается.
Плагин WP Super Cache также добавляет два файла в директорию wp-content: advanced-cache.php (специальный) и wp-cache-config.php. Они нужны для работы WP Super Cache.
Еще пример, мой плагин Kama Thumbnail, который также создает папку /wp-content/cache/thumb и записывает в нее созданные файлы миниатюр.
Специальные файлы
advanced-cache.php
Этот файл используется плагинами страничного кэширования. В нем обычно проверяется наличие подходящего файла кэша и если он есть, то он выводиться на экран и работа скрипта обрывается. Это позволяет не загружать 90% файлов WordPress и отдавать статические HTML файлы.
object-cache.php
На основе этого файла работают такие кэши объектов как: Memcache, Memcached, APC, XCache.
Вызов выглядит так:
maintenance.php
В maintenance.php нужно описать страницу-заглушку по всем правилам HTML.
Подробнее читайте в описании функции wp_maintenance()
db-error.php
Позволяет показать произвольный шаблон страницы ошибки соединения с базой данных.
Страница об ошибке подключения должна устанавливать статус ответа 500, чтобы поисковики не обрабатывали контент.
Файл db-error.php вызывается функцией dead_db(), а функция в свою очередь вызывается при ошибке подключения к БД.
Пример такой страницы смотрите здесь.
sunrise.php
Загружается только для мультисайтовой сборки, т.е. когда срабатывает условие is_multisite() и при этом определена константа ‘SUNRISE’ (её нужно определить в файле wp-config.php ).
Также в файле sunrise.php можно изменить константы отвечающие за то, где находится каталоги MU плагинов или обычных плагинов. см. wp_plugin_directory_constants()
.
sunrise.php подключается еще до константы SHORTINIT.
sunrise.php подключается в файле wp-includes/ms-settings.php, который в свою очередь подключается в основном загрузочном файле wp-settings.php.
db.php
Благодаря такой логике, можно, например, расширить базовый класс wpdb<> или полностью его заменить.
Пример расширения базового класса wpdb<> :
Переименование или перемещение папки wp-content
В некоторых случаях, например, для уникализации многих URL на всем сайте или для объединения структуры сайта с другим скриптом, или по каким-то еще причинам, нужно чтобы каталог wp-content назвался по-другому или чтобы он находился в другой директории.
Как изменить файловую структуру Вордпресс
Вордпресс — система с открытым исходным кодом, поэтому стандартная структура файлов и папок является публично доступной информацией, и кто угодно, включая хакеров, точно знает, откуда можно начать атаку на сайт.
Чтобы противостоять таким атакам, можно реорганизовать стандартную файловую структуру Вордпресс сайта. В этой статье вы узнаете 2 способа изменить структуру файлов и папок одиночного сайта и мультисайт установки Вордпресс.
Предостережение от Вордпресс : Делайте это на свой собственный риск. Для большинства сайтов не рекомендуется переносить Вордпресс в другую папку, если только у вас нет веской причины для этого, и вы хорошо понимаете, что вы делаете.
Все инструкции на этой странице взяты из разных мест Кодекса Вордпресс и сведены в одну статью.
Изменение структуры Вордпресс — важная часть защиты сайта, поэтому сделать эти изменения желательно. Для начала вы можете попробовать на тестовом или локальном сайте. Или сделайте бэкап.
Сделайте бэкап
Вы будете менять расположение файлов и папок, поэтому если что-то пойдет не так, вы сможете восстановить сайт из бэкапа.
В случае, если после изменения структуры Вордпресс файлы сайта не смогут установить связь с базой данных, во фронт-энде сайта будут показаны ошибки с информацией, которую не должны видеть посторонние. Эту информацию лучше скрыть, вместо фронт-энда ее можно сохранять в лог-файл.
1. Перенос сайта без изменения URL
Создайте новую папку
Создайте новую папку в корневой папке сайта. Это можно сделать в файловом менеджере на хостинг панели или через FTP.
Дайте новой папке какое-нибудь уникальное имя, которое непросто угадать. Не называйте папку «wordpress», «wp-core» или что-нибудь подобное. Подберите имя, которое для вас что-нибудь значит, но непросто подобрать хакерам.
Перенесите файлы ядра Вордпресс в новую папку
Перенесите ВСЕ файлы и папки сайта в только что созданную папку.
По URL вашего сайта хакер будет предполагать, что файлы и папки сайта находятся в корневой директории, но при попытке обратиться к этим файлам он поймет, что их там нет. Это увеличивает шансы файлов остаться нетронутыми.
Создайте файл .htaccess в корневой папке сайта, и добавьте в него этот код:
В строках 3 и 8 замените my-site.ru на ваш домен. В строках 4, 7 и 9 замените 1234-567 на название новой папки.
Все готово. Сохраните и загрузите на сайт. Проверьте.
2. Перенос сайта c изменением URL
В этом способе адрес сайта изменится с my-site.ru на my-site.ru/abcd-xyz
Создайте новую папку
Создайте новую папку с произвольным именем в корневой папке сайта. Перед тем, как вы переместите в нее файлы сайта, в настройках сайта нужно изменить адрес, который говорит Вордпресс где расположены файлы сайта.
Изменение адреса файлов сайта
Нажмите Сохранить изменения внизу страницы. После этого сайт должен стать недоступен, так и должно быть.
Если у вас Мультисайт установка, то вы не сможете изменить адрес Вордпресс из меню суперадмина. Вместо этого надо добавить несколько строк кода в файл wp-config.php.
Вы можете сделать то же самое и для одиночной установки Вордпресс, но в этом случае вы не сможете изменить адрес Вордпресс в меню Настройки — Общие.
Откройте wp-config.php и добавьте эти строки
ближе к концу файла, но перед строкой
Сохраните изменения. Сайт должен быть недоступен. Теперь надо переместить файлы.
Перемещение файлов
Файл .htaccess может быть невидим, поэтому в настройках файлового менеджера на хостинге или в настройках FTP клиента зайдите в Настройки и поставьте галочку Показывать скрытые файлы и папки.
Редактирование файла index.php
Чтобы сайт начал работать с файлами, находящимися по новому адресу, нужно сделать изменения в файле index.php. Откройте index.php, который находится в корневой папке сайта и найдите эти строки, они находятся ближе к концу файла:
Замените /abcd-xyz на название вашей папки. Сохраните изменения, загрузите на сервер.
Обновление постоянных ссылок
Зайдите в админку сайта. Теперь URL адрес страницы авторизации должен включать название новой папки.
Зайдите в Настройки — Постоянные ссылки и нажмите Сохранить изменения. Это автоматически обновит файл .htaccess и все посты и страницы будут доступны посетителям.
3. Перемещение некоторых папок Вордпресс
Вы можете сделать еще несколько изменений в структуре папок сайта. Для этого понадобится добавить несколько строк кода в файл wp-config.php для каждого следующего шага.
Существует 2 правила, которые нужно соблюдать:
С этими папками можно делать изменения при помощи кода в wp-config.php:
Когда будете делать изменения с папками wp-content и plugins, добавляйте код в wp-config.php до строки
с папкой uploads — после этой строки.
WP-Content
Вы можете создать новую папку в корневой папке сайта и переместить в нее папку wp-content. После этого откройте wp-config.php и добавьте этот код:
Если вы хотите перенести wp-content в папку, которая находится не в корневой папке сайта, то замените /newfolder/ на ваш адрес.
Plugins
Создайте новую папку, перенесите в нее папку plugins. Добавьте этот код в wp-config.php:
Если у вас появилась проблема совместимости с плагинами, добавьте эту строку:
Замените add-folder на название новой папки.
Uploads
Чтобы переименовать папку uploads, откройте wp-config.php, спуститесь в самый низ файла, ниже строк «Это все, дальше не редактируем», и найдите эти 2 строки:
Папка Uploads всегда относительна к ABSPATH, поэтому слеш перед wp-content/media не требуется. Замените media на новое название папки uploads. В итоге должно получиться:
Если вы решили изменить название папки uploads, то вам нужно изменить текущее название папки на сервере.
Зайдите на сервер по FTP или через хостинг-панель и измените название папки uploads на то имя, которые вы дали этой папке в файле wp-config.php.
Заключение
Если вы все сделали правильно, то сайт должен корректно работать по своему обычному адресу без добавления суб-директории в URL, а посетители и хакеры не смогут определить, что файлы ядра Вордпресс больше не находятся на своем обычном месте в корневой папке сайта.
Если вы хотите, чтобы в адресе сайта добавилась подпапка установки сайта, используйте способ 2.
Для проверки информации читайте статью Размещаем WordPress в отдельном каталоге (рус.) в документации Вордпресс.
Если по какой-то причине у вас не получилось изменить стандартную структуру Вордпресс, как минимум запретите исполнение PHP файлов в папке Uploads.
Структура вашего сайта на WordPress
Привет, друзья. Очень часто отвечая на вопросы читателей приходится сталкиваться с тем, что задавая вопросы о различном функционале тем или плагинов, многие даже не представляют основную структуру своего сайта на сервере. Это удивительно, но факт. В этой статье мы рассмотрим базовую самых важных, стандартных WordPress папок, уделяя особое внимание корневым файлам, на основе которых собственно и работает ваш сайт.
Структура директорий WordPress
Файловая структура WordPress очень проста. У вас есть папка public_html, где находятся как правило три ключевые папки, а так же множество других важных файлов, включая wp-config.php и .htaccess
Чтоб получить доступ к файлам и папкам, вы можете использовать файловый менеджер cPanel от вашего хостинг-сервиса или любой обычный FTP-клиент.
Для этого обзора мы будем использовать самый популярный ftp-клиент — FileZilla. Вот как должна выглядеть папка public_html внутри:
Затем, есть файл index.php, который по умолчанию представляет вашу домашнюю страницу, если, конечно, он не замещен страницами типа front-page.php или home.php:
Еще один необходимый файл в этой директории – это wp-config.php. Данный файл позволяет задать базовую конфигурацию WordPress, включая настройки для базы данных MySQL, секретные ключи, и информацию о префиксе базы данных. Вот как должны выглядеть настройки вашей базы данных:
Другие примечательные файлы в этой директории – это wp-activate.php, и wp-signup.php, которые все вместе отвечают за регистрацию, авторизацию и процесс подтверждения пользовательской регистрации. Файл wp-comments-post.php отвечает за функцию комментирования и предотвращение дупликации контента, в то время как wp-settings.php отвечает за установку некоторых WordPress-переменных.
Папка wp-admin
Как понятно из названия папки, здесь лежит инструментарий админа. Например, admin.php (сердце данной папки) позволяет вам связать инсталляцию с базой данных, отображает панель управления WordPress и предлагает прочие ключевые функции, такие как, например, проверка того, является ли данный пользователь администратором. Если пользователь является админом, то включается использование файла wp-load.php, который в свою очередь загружает файл wp-config.php:
Если вы обратите внимание на названия данных файлов, то поймете, что большинство из них говорят пользователю о выполняемых ими функциях, которые вам знакомы по админке WordPress. Например, profile.php выводит экран администрирования пользовательского профиля, theme-install.php контролирует панель установки тем, а plugin-install.php делает тоже самое для панели установки плагинов.
Что касается других важных папок внутри wp-admin, то images заполнены картинками, которые используются в административной панели WordPress, css и js – это «дома» для CSS-кода и JavaScript-скриптов, а network включает PHP-файлы, необходимые для работы мультисайтовости WordPress
Папка wp-content
Вероятно, именно здесь вы проводите большую часть своего времени, работая с WordPress, так как здесь собраны наиболее используемые файлы и функции, а именно, темы и плагины:
Папка Plugins
Каждый загруженный вами плагин имеет свою собственную папку в этой общей папке, как видно в примере выше. Контент каждой папки разумеется, варьируется от плагина к плагину. Вот, например, как выглядит папка популярного плагина Akismet.
Если у вас возникли какие-то проблемы с совместимостью, то следует воспользоваться FTP-доступом для отключения расширений. Сделать это можно удалив или просто временно переименовав папку с конфликтным плагином.
Папка Themes
Так же, как и в случае с плагинами, каждая тема имеет собственные подпапки. Если мы откроем папку с любой темой, то увидим там множество PHP-файлов, которые все вместе создают внешний вид и структуру вашей темы. Возьмем знаменитую тему Divi от Elegant Themes в качестве примера, в главной папке которой мы найдем файлы 404.php, a functions.php, a sidebar.php, и style.css, среди остальных. Divi также имеет отдельные папки для css, картинок и js темы, что весьма стандартно для большинства качественных тем. Но, как бы то ни было, некоторые другие папки достаточно уникальны, к примеру, epanel и et-pagebuilder:
Папка wp-includes
Еще одна папка – это wp-includes, и она довольно большая. wp-includes содержит все те файлы, которые не вошли в описанные ранее папки. Условно говоря, именно благодаря этой папке сайт работает как часы.
Папка так важна, потому что здесь находится большинство файлов WordPress-ядра. Новая инсталляция WordPress содержит 140 различных файлов в главной директории и 14 разных папок (на момент написания статьи), включая сертификаты, шрифты, js и виджеты.
Но эти подпапки не так важны, как файлы, которые находятся в главной директории, например, functions.php. Этот маленький файл является важной частью ядра WordPress, так как он содержит множество самых разных функций, которые и позволяют WordPress стабильно работать. Например, данные строчки кода – это первое, что вы увидите, если откроете этот файл, и эта функция нужна, чтоб трансформировать данные в другие форматы.
Другие ключевые файлы – это cache.php (управляет процессом добавления и удаления данных из кеша, а также за отвечает за его закрытие или перезапуск), links.php (функциональность, которая отвечает за ссылки WordPress) и version.php (отвечает за версию WordPress).
Очень надеюсь, что данная статья позволит новичкам получить базовые представления и знания о структуре вашего сайта на WordPress. Согласитесь — не каждому водителю нужно быть автомехаником, но предствлять где в авто находится мотор, а где подвеска, стоит всем кто за рулем. Ну это так, к слову 🙂
Каталог wp-content в WordPress
Т.е. каталоги: wp-includes и wp-admin — это ядро WordPress, а wp-content — это все остальное — все пользовательские данные…
файл index.php должен находиться в wp-content всегда. Вот его содержимое:
При обновлении WordPress вручную, никогда не трогайте папку wp-content и ничего в ней. Она к обновлению WordPress никакого отношения не имеет.
Список папок и файлов, которые могут лежать в каталоге wp-content :
/mu-plugins — обязательные плагины
/plugins — плагины
/themes — темы
WordPress может хранить в этой директории сколько угодно тем. Вы можете легко посмотреть любую имеющуюся тему или активировать её во вкладке Внешний вид ► Темы в админ-панели.
/uploads — медиафайлы и загрузки
По умолчанию WordPress хранит загрузки в папке по месяцам и годам:
WordPress НЕ умеет распознавать и импортировать в админку изображения загруженные в uploads напрямую (не через админку). И в библиотеке файлов WordPress такие файлы не отображаются — WordPress о них ничего не знает.
uploads в Multisite
Такой подход позволяет разделить загрузки для каждого сайта и упрощает их обслуживание.
Так например, директория для сайта с ID 3 выглядит так:
Перемещение папки uploads
Чтобы переместить папку uploads нужно определить константу UPLOADS в wp-config.php так:
Или можно изменить опции: ‘upload_path’ и ‘upload_url_path’ в таблице опций (см. update_option()).
Перемещать папку uploads не рекомендуется.
/upgrade — автообновления
Директория wp-content/upgrade создается WordPress автоматически при обновлении WordPress. Эта папка используется для хранения новой версии WordPress, скачанной с WordPress.org. Перед обновлением, WordPress скачивает архив и извлекает его содержимое в эту папку. Чтобы процесс автоматического обновления протекал успешно, рекомендуется не трогать эту папку. Если данная директория удалена, WordPress создаст её при следующем обновлении.
/languages — переводы
Каталог wp-content/languages присутствует только в том случае, если вы устанавливаете не английскую версию WordPress. В нем содержаться все файлы локализации (перевода) WordPress. Такие файлы имеют расширения:
Также в languages могут находиться специальные поддиректории:
Произвольные директории
В /wp-content можно создавать любые директории. Некоторые плагины, создают такие папки для хранения файлов. Обычно отдельная папка создается, когда нужно хранить много файлов или когда хранимые файлы как-то отличаются от остальных.
Например плагин WP Super Cache создает директорию /wp-content/cache для хранения кэшированных страниц сайта. Кэшированная страница — это сгенерированная страница сайта, сохраненная как статический файл HTML. При обращении к такой странице она не генерируется повторно, а отдается статический файл. Это и есть страничный кэш, который уменьшает нагрузку сервера в десятки раз, поскольку страницы не генерируются при каждом просмотре, а создаются только когда кэш перезаписывается.
Плагин WP Super Cache также добавляет два файла в директорию wp-content: advanced-cache.php(специальный) и wp-cache-config.php. Они нужны для работы WP Super Cache.
Специальные файлы
advanced-cache.php
Этот файл используется плагинами страничного кэширования. В нем обычно проверяется наличие подходящего файла кэша и если он есть, то он выводиться на экран и работа скрипта обрывается. Это позволяет не загружать 90% файлов WordPress и отдавать статические HTML файлы.
object-cache.php
На основе этого файла работают такие кэши объектов как: Memcache, Memcached, APC, XCache.
Вызов выглядит так:
maintenance.php
В maintenance.php нужно описать страницу-заглушку по всем правилам HTML.
db-error.php
Позволяет показать произвольный шаблон страницы ошибки соединения с базой данных.
Страница об ошибке подключения должна устанавливать статус ответа 500, чтобы поисковики не обрабатывали контент.
Файл db-error.php вызывается функцией dead_db(), а функция в свою очередь вызывается при ошибке подключения к БД.
sunrise.php
Загружается только для мультисайтовой сборки, т.е. когда срабатывает условие is_multisite() и при этом определена константа ‘SUNRISE’ (её нужно определить в файле wp-config.php ).
Также в файле sunrise.php можно изменить константы отвечающие за то, где находится каталоги MU плагинов или обычных плагинов. см. wp_plugin_directory_constants().
sunrise.php подключается еще до константы SHORTINIT.
sunrise.php подключается в файле wp-includes/ms-settings.php, который в свою очередь подключается в основном загрузочном файле wp-settings.php.
db.php
Благодаря такой логике, можно, например, расширить базовый класс wpdb<> или полностью его заменить.
Пример расширения базового класса wpdb<> :
Переименование или перемещение папки wp-content
В некоторых случаях, например, для уникализации многих URL на всем сайте или для объединения структуры сайта с другим скриптом, или по каким-то еще причинам, нужно чтобы каталог wp-content назвался по-другому или чтобы он находился в другой директории.