Каталог wp-content в WordPress: що містить і що потрібно про нього знати

  1. / Plugins - плагіни
  2. / Mu-plugins - обов'язкові плагіни
  3. / Themes - теми
  4. / Uploads - мультимедійні дані і завантаження
  5. uploads в Multisite
  6. Переміщення папки uploads
  7. / Upgrade - автообновления
  8. / Languages ​​- переклади
  9. довільні директорії
  10. спеціальні файли
  11. object-cache.php
  12. maintenance.php
  13. db-error.php
  14. sunrise.php
  15. db.php
  16. Перейменування або переміщення папки 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.

У дистрибутиві WordPres wp-content містить один файл index.php і 3 папки: plugins, themes, languages.

файл index.php повинен перебувати в wp-content завжди. Ось його зміст:

<? Php // Silence is golden.

Навіщо ж він потрібен? Він забороняє бачити список файлів в папці. Якщо index.php не існує, а ваш веб-сервер дозволяє дивитися файли в директоріях, то пройшовши за посиланням http://example.com/wp-content, можна побачити всі файли і папки в цій директорії. Це можуть використовувати хакери, щоб отримати доступ до файлів ключів, що дозволить зламати сайт. Наприклад, якщо у вас встановлений вразливий плагін, то сайт можна буде легко перевірити на наявність цього вразливого плагіна, а далі атакуючий швидко зможе зламати сайт.

При оновленні WordPress вручну, ніколи не чіпайте папку wp-content і нічого в ній. Вона до оновлення WordPress ніякого відношення не має.

Список того, що може перебувати в каталозі wp-content:

/ Plugins - плагіни

Модулі знаходяться в директорії wp-content / plugins. Плагін може являти собою один або кілька файлів всередині папки. Будь-які файли в директорії / plugins скануються WordPress, щоб визначити, чи є файл файлом плагіна. Якщо файл визначається як плагін, він з'являється в адмін-панелі в розділі «Модулі» і готовий до активації.

Для деактивації плагіну можна видалити плагін з папки / plugins. Також можна перейменувати назву папки, в цьому випадку, WordPress деактивує раніше активний плагін до того, як почне виведення вмісту. Але майте на увазі, що плагіни краще видаляти з адмін-панелі, через кнопку Видалити, тому що при видаленні спрацьовують деякі функції, які підчищають дані плагіна в базі даних або в файлах.

меню

/ Mu-plugins - обов'язкові плагіни

У WordPress є також «Обов'язкові плагіни», вони знаходиться в директорії wp-content / plugins. Про них я писав окрему стати , Обов'язково ознайомтеся. А тут я скажу про них коротко:

Обов'язкові до використання плагіни (Must-use plugins), відомі також під назвою mu-plugins - це плагіни, які встановлюються в спеціальну папку mu-plugins в каталозі контенту wp-content і активуються автоматично (завжди активні) для сайту і сайтів мережі. Ці плагіни не видно серед звичайних плагінів. В адмін-панелі вони відображаються у верхній інформаційному рядку і їх неможливо відключити, крім як видалити файл плагіна з каталогу wp-content / mu-plugins.

меню

/ 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 () ).

меню

/ 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. Також як і з плагінами - ці файли мають більший пріоритет перед рідними файлами перекладу теми.
меню

довільні директорії

В / wp-content можна створювати будь-які директорії. Деякі плагіни, створюють такі папки для зберігання файлів. Зазвичай окрема папка створюється, коли потрібно зберігати багато файлів або коли збережені файли якось відрізняються від інших.

наприклад плагін WP Super Cache створює директорію / wp-content / cache для зберігання кешованих сторінок сайту. Кешована сторінка - це згенерувала сторінка сайту, збережена як статичний файл HTML. При зверненні до такої сторінці вона не генерується повторно, а віддається статичний файл. Це і є сторінковий кеш, який зменшує навантаження сервера в десятки разів, оскільки сторінки не генеруються при кожному перегляді, а створюються лише коли кеш перезаписується.

Плагін WP Super Cache також додає два файли в директорію wp-content: advanced-cache.php (спеціальний) і wp-cache-config.php. Вони потрібні для роботи WP Super Cache.

Інший приклад, популярний плагін для галерей - NextGen Gallery - створює директорію / wp-content / gallery для зберігання зображень, завантажених в галереї. Кожна створена галерея представляє собою піддиректорію / gallery.

Ще приклад, мій плагін Kama Thumbnail , Який також створює папку / wp-content / cache / thumb і записує в неї створені файли мініатюр.

меню

спеціальні файли

advanced-cache.php

Викликається на самому ранньому етапі завантаження WordPress, в файлі wp-settings.php, якщо константа WP_CACHE включена. Ось так виглядає виклик:

// Для використання плагінами кешування. Використовує статичний файл для обриву роботи скрипта. if (WP_CACHE) WP_DEBUG? include (WP_CONTENT_DIR. '/advanced-cache.php'): @include (WP_CONTENT_DIR. '/advanced-cache.php');

Цей файл використовується плагінами сторінкового кешування. У ньому зазвичай перевіряється наявність відповідного файлу кеша і якщо він є, то він виводитися на екран і робота скрипта обривається. Це дозволяє не завантажувати 90% файлів WordPress і віддавати статичні HTML файли.

меню

object-cache.php

Викликається з функції wp_start_object_cache () , Яка в свою чергу викликається з файлу wp-settings.php трохи пізніше advanced-cache.php. На відміну від advanced-cache.php, object-cache.php спрацьовує завжди, якщо він існує. Він потрібен, щоб перевизначити роботу базового кешування об'єктів WordPress.

На основі цього файлу працюють такі кеші об'єктів як: Memcache, Memcached , APC , XCache .

Виклик виглядає так:

// Запускає об'єктне кешування WordPress або зовнішнє об'єктне кешування, якщо існує спеціальний файл. wp_start_object_cache (); меню

maintenance.php

wp-content / maintenance.php відповідає за виведення сторінки-заглушки, яка показується в момент автообновления WoordPress. Така сторінка визначена за замовчуванням і за її висновок відповідає функція wp_maintenance () . Але якщо створити файл maintenance.php в wp-content, то за виведення сторінки-заглушки буде відповідати вміст цього файлу.

У maintenance.php потрібно описати сторінку-заглушку за всіма правилами HTML.

Детальніше читайте в описі функції wp_maintenance ()

db-error.php

Дозволяє показати довільний шаблон сторінки помилки з'єднання з базою даних.

Якщо файл існує в папці wp-content - wp-content / db-error.php, тоді замість дефолтного повідомлення WordPress про помилки з'єднання з базою даних буде завантажений цей файл. У файлі потрібно створити HTML код сторінки про помилку!

Сторінка про помилку підключення повинна встановлювати статус відповіді 500, щоб пошукачі не обробляли контент.

Файл db-error.php викликається функцією dead_db () , А функція в свою чергу викликається при помилку підключення до БД.

Приклад такої сторінки дивіться тут .

меню

sunrise.php

Завантажується тільки для мультісайтового збірки, тобто коли спрацьовує умова is_multisite () і при цьому визначена константа 'SUNRISE' (її потрібно визначити у файлі wp-config.php).

Файл wp-content / sunrise.php дозволяє на ранньому етапі змінити логіку роботи сайту в мережі Мультисайт. Наприклад, тут можна встановити глобальні змінні $ current_site,
$ Current_blog визначають поточний сайт мережі. Або можна змінити префікс таблиць БД - змінна $ table_prefix.

Також в файлі sunrise.php можна змінити константи відповідають за те, де знаходиться каталоги MU плагінів або звичайних плагінів. см. wp_plugin_directory_constants ()
.

sunrise.php підключається в файлі wp-includes / ms-settings.php , Який в свою чергу підключається в основному завантажувальному файлі wp-settings.php .

меню

db.php

Дозволяє переписати движок роботи з БД. Якщо файл існує в папці wp-content, то він буде викликаний до створення підключення до БД. Далі, якщо в цьому файлі визначити змінну $ wpdb, то саме вона буде використовуватися, як глобальна змінна для роботи з БД.

Завдяки такій логіці, можна, наприклад, розширити базовий клас wpdb {} або повністю його замінити.

Приклад розширення базового класу wpdb {}:

<? Php // це код для файлу db.php, який лежить в папці wp-content defined ( 'ABSPATH') || die (); if (defined ( 'DOING_CRON') && DOING_CRON) return; class MY_DB extends wpdb {public function __construct ($ dbuser, $ dbpassword, $ dbname, $ dbhost) {// додатковий код ... parent :: __ construct ($ dbuser, $ dbpassword, $ dbname, $ dbhost); } // переобумовленої метод wpdb :: query () public function query ($ query) {// наш змінений код}} $ wpdb = new QM_DB (DB_USER, DB_PASSWORD, DB_NAME, DB_HOST); меню

Перейменування або переміщення папки wp-content

У деяких випадках, наприклад, для унікалізації багатьох URL на всьому сайті або для об'єднання структури сайту з іншим скриптом, або з якихось ще причин, потрібно щоб каталог wp-content назвався по-іншому або щоб він знаходився в іншій теці.

Перемістити або перейменувати wp-content дуже просто. Для цього потрібно відкрити конфігураційний файл wp-config.php, який лежить в корені вашого сайту і визначити в ньому дві константи:

  • WP_CONTENT_DIR - шлях до каталогу контенту;
  • WP_CONTENT_URL - URL на каталог контенту.

define ( 'WP_CONTENT_DIR', $ _SERVER [ 'DOCUMENT_ROOT']. '/ data'); define ( 'WP_CONTENT_URL', 'http: //'. $ _SERVER [ 'HTTP_HOST']. '/ data');

Даний код перейменовує wp-content в data.

Навіщо ж він потрібен?
If (WP_CACHE) WP_DEBUG?

Уважаемые партнеры, если Вас заинтересовала наша продукция, мы готовы с Вами сотрудничать. Вам необходимо заполнить эту форму и отправить нам. Наши менеджеры в оперативном режиме обработают Вашу заявку, свяжутся с Вами и ответят на все интересующее Вас вопросы.

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: