Структура вордпресу. Інструкція для новачків щодо файлової структури WordPress. Файлова структура шаблонів сторінок

Сайти, створені на движку WordPress, мають особливу структуру, яка відрізняється від структури

При початковому знайомстві із сайтобудуванням зазвичай говорять про ієрархічну структуру сайту. Її суть полягає в тому, що весь сайт складається з безлічі сторінок, сторінки об'єднуються в розділи, ті, у свою чергу, у більші розділи і т. д. Цій системі розміщення матеріалів відповідає система багаторівневого меню. Така структура сайтів подібна до файлової структури комп'ютера, тому звична і зрозуміла.

Структура розміщення матеріалів на движку WordPress, що використовується для створення більшості, не ієрархічна, а мережева, тому з першого погляду незрозуміла. Це може, певною мірою, відлякати веб-майстра-початківця від використання CMS WordPress.

Саме тому виникає потреба розібратися, як влаштований сайт на WordPress.

До речі, якщо ви хочете навчитися робити сайти та блоги, використовуючи CMS WordPress, причому з унікальним дизайном, вам найкраще скористатися курсом "Унікальний сайт з нуля".Ознайомитись з ним ви можете за посиланням нижче.

Унікальний сайт з нуля

У структурі будь-якого сайту можна виділити три основні напрямки:

  1. Зовнішня структура. Вона показує нам зовнішній вигляд сторінки, розміщення окремих елементів, блоків щодо один одного.
  2. Внутрішня структура, тобто структура зв'язків між окремими матеріалами, що утворюють контент.
  3. Файлова структура, що показує взаємозв'язок файлів, що становлять весь сайт.

Отже, який вигляд сайту на WordPress?

Відразу слід зазначити, що залежить від вибору шаблону. Таких шаблонів величезна кількість і, звичайно, сайти можуть відрізнятися один від одного. Але є й спільні риси, на які ми звернемо увагу. Як приклад можна розглядати цей сайт.

У верхній частині сторінки зазвичай знаходиться шапка (header). У ній може бути назва сайту, логотип, слоган, іноді рядок пошуку, кнопки соціальних мереж.

Під шапкою, а іноді під нею найчастіше знаходиться основне меню.

У нижній частині сторінки ми бачимо підвал (footer). У ньому може бути розміщена службова інформація. Наприклад, про авторів сайту, авторські права. Іноді там можна зустріти кнопки соціальних мереж, деякі елементи навігації тощо.

У середній частині сторінки знаходиться стрічка записів та бічна колонка (sidebar).

Записи (post)– головна частина сайту WordPress. Саме в них знаходиться основний контент, те, про що хотів розповісти автор сайту його відвідувачам.

Кожен новий запис з'являється у верхній частині стрічки, старі опускаються нижче. На сторінці можна побачити лише обмежену кількість записів, наприклад, десять. До інших записів можна перейти за допомогою відповідних кнопок навігації. Ще одна особливість стрічки записів полягає в тому, що на головній сторінці найчастіше бачимо записи не повністю, а лише перші абзаци. Так швидше вибирати потрібну статтю. Але це вже стосується внутрішньої структури сайту.

Крім стрічки записів, контент знаходиться і на постійних сторінках, які не змінюються і не переміщаються. На таких сторінках мають зазвичай інформацію про автора, про сайт, карту сайту, контактну інформацію тощо.

Збоку від стрічки записів знаходиться бічна колонка (sidebar). У його розташуванні також можуть бути різні варіанти. Сайдбар може розташовуватися ліворуч або праворуч, він може бути один або два.

Наприклад, шаблон Admired, застосований на даному сайті, дозволяє використовувати наступні варіанти розташування сайдбару:

Сайдбар складається з окремих блоків-віджетів (widget). Їх кількість та розташування визначається адміністратором сайту та досить легко модифікується.

Тепер перейдемо до внутрішньої структури сайту WordPress. Саме в ній полягають особливості даного двигуна. Система навігації складається з кількох частин.

По-перше, головне меню. Це меню веде нас до постійних сторінок. Таких сторінок може бути багато, але меню може бути складним, багаторівневим. У разі ми маємо ієрархічну структуру. А ось до записів пункти меню не ведуть, крім одного пункту, який відкриває основну стрічку записів.

Для навігації за записами використовується інша система, заснована на поняттях "рубрика" та "мітка".

При написанні чергової статті її прив'язують до будь-якої рубрики, або навіть не однієї, а двох, трьох. Сайдбар має віджет зі списком рубрик, і ми можемо вибирати зі всієї стрічки записів статті, що стосуються однієї рубрики.

Крім цього, кожній статті надаються мітки – слова, що характеризують цей запис. Цих міток може бути теж кілька, і можна вибирати записи за мітками. Мітки видно зазвичай наприкінці кожної статті. Крім цього, часто в сайдбарі розміщують віджет «Хмара міток», який показує всі мітки та дозволяє вибирати статті, клацаючи за цими ключовими словами.

Зовнішня структура сторінки та структура розміщення матеріалів сайту важливі для , а ось файлова структура їм не видно. Вона в основному цікавить розробників сайту.

Коротко про цю структуру. Як і будь-який сайт, сайт на WordPress складається з багатьох файлів. Розглянемо найважливіше.

По-перше, весь контент зберігається окремо на сервері у базі даних MySQL.

По-друге, окремі папки містять файли зображень.

І, по-третє, самі сторінки формуються із окремих php-файлів. Кількість цих файлів може бути різною, це також залежить від вибору шаблону, але є основні, обов'язкові файли.

Щоб побачити ці файли, потрібно в консолі керування WordPress вибрати Зовнішній вигляд? Редактонар. Праворуч відкриється список усіх файлів WP. Наприклад:

  • Архіви
    (archive.php)

Права доступу, що встановлюються на файли та папки, що належать системі керування контентом WordPress, мають дуже серйозний вплив на безпеку сайту. Якщо роздати неправильні права, то можна очікувати різноманітні помилки у функціонуванні сайту, чи то білий екран смерті замість сторінки, чи неможливість завантажити зображення в папку для мультимедіа. Більше того, неправильно виставлені права доступу можуть зруйнувати всю систему безпеки сайту, зробивши його надзвичайно вразливим до атак хакерів.

WordPress має чітко визначену структуру каталогу, в якому центральні папки – це wp-content, wp-admin та wp-includes.

Майже всі важливі компоненти, що входять до складу вашого сайту, такі як теми, плагіни і т.д., містять три ці папки. При цьому вони мають власні права доступу, що дозволяють адміністратору вирішити, «кому» і «що» можна робити в них. Під «кому» тут мається на увазі користувач, який матиме наступні асоціації з ресурсами:

  • Власник - пряме володіння;
  • Група - володіння через входження до групи;
  • Інші – відсутність володіння та групи.

Користувачі веб-сервера та їх групи

До того, як продовжити розбирати дозволи доступу в WordPress, бажано розібратися, хто ж мається на увазі під користувачем веб-сервера, оскільки все крутиться навколо нього. Якщо коротко, то це звичайний обліковий запис, який має право на виконання якихось дій на веб-сервері. Взяти, наприклад, протокол передачі файлів FTP. Як тільки у вас з'явиться необхідність завантажити будь-яке зображення через FPT, ви користуватиметеся відповідним обліковим записом.

Але FTP обліковий запис необхідний тільки тоді, коли потрібно закачати щось прямо на сервер, а якщо потрібно зайти, наприклад, в адмін панель? У такому випадку, в роботу вступає обліковий запис веб-користувача, що дозволяє керувати сайтом на ВордПрес, встановлюючи плагіни та теми, завантажуючи зображення через менеджер мультимедіа і т.д. Саме від його імені та створюються нові файли, коли ви виконуєте робите ці речі у своїй панелі адміністратора.

Будь-який окремо взятий користувач може також перебувати в якійсь групі, що має свої власні привілеї. Оскільки вони поширюються на всіх, хто входить до групи, то це найкращий спосіб призначення привілеїв конкретному ресурсу та поділу їх між усіма учасниками.

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

Дозволи на дії з файлами WordPress

Будь-який ресурс у ВордПрес пов'язаний з певним набором заданих значень, що диктують те, що користувач може зробити з ним. Є три дії, які ми можемо виконати з конкретним ресурсом – читати, писати (або змінювати) та виконувати. Для кожного ресурсу можна вказати, які з цих дій може виконати власник, група та інші. Таким чином, нам потрібно три біти (по одному на кожну дію) для кожної асоціації, що загалом дорівнює 9 біт. Тому дозвіл стає тризначним числом, наприклад, 664, в якому:

  • 6 – дії для власника;
  • 6 – дії групи;
  • 4 – дії інших типів.

При цьому кожне значення зазначених цифр визначає всі можливості, які має даний тип користувачів. Що стосується 664, 6 – це читання і запис, а 4 – лише читання.

Каталоги

На каталоги, як і самі файли, також можуть діяти певні права доступу. Вони дуже схожі, але мають деякі відмінності, такі як:

  • Читати – переглядати вміст каталогу;
  • Писати – створювати нові та видаляти існуючі (при цьому права для каталогу поширюються на все, що в ньому міститься);
  • Виконувати – заходити до каталогів (наприклад, скориставшись командою у терміналі).

Виставляти правильні обмеження життєво важливо, оскільки йдеться про безпеку, а не лише про функціональність ВордПрес. Взяти, наприклад, config.php йому бажано виставляти жорстке обмеження 600 (тільки для читання). Припустимо, що його права змінюватися на 666, тоді будь-яка людина зможе побачити та змінити конфігурацію вашого сайту, а значить зможе легко зламати його або зробити вразливим перед зовнішніми загрозами.

Зміна дозволів на дії у каталогах WordPress

Cpanel вашого хостингу забезпечує інтерфейс, в якому є можливість встановлювати будь-який рівень доступу для ресурсів, що зберігаються. Найчастіше це можна зробити простим вибором конкретного файлу і натисканням «Змінити дозволи». Якщо ви маєте справу з терміналом, то простіше використовуватиме спеціальну команду chmod. Вона виглядає так: chmod 644

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

  • Поставити всі файли 664;
  • На всі папки 775;
  • wp-config.php має бути лише 600.

Ось що вийде:

  • Акаунти зможуть прочитати та змінити файли;
  • Сам двигун зможе створювати, змінювати або видаляти будь-які файли;
  • wp-config.php буде повністю захищений від сторонніх очей.

Майте на увазі, що всупереч стандартній конфігурації ВордПрес, якийсь конкретний сервер може бути суворішим, ніж інші, і не дозволить виставити 600 на wp-config.php. Але ви можете вказати йому м'якше 640, а якщо це не спрацює, то навіть 644.

Взагалі, найбезпечніше поставити на все «тільки для читання». Таким чином хакерам буде дуже важко завантажувати шкідливі скрипти на ваш сайт або модифікувати існуючі. Це дозволить значно скоротити масштаби будь-яких атак. Однак, якщо поставити на все «тільки для читання», то можливі деякі проблеми в юзабіліті.

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

Висновок

І так ми розглянули, яку важливу роль відіграють дозволи для доступу до ресурсів WordPress. Якщо вони задані правильно, це може значно посилити заходи безпеки вашого сайту, інакше можна отримати безліч проблем, включаючи дуже серйозні, як з безпекою, так і з загальною працездатністю ВордПрес. Майте на увазі, що ви можете також поставити обмеження на ресурси ВордПрес через Htaccess, але це вже буде дещо складніше.


При роботі з WordPress рано чи пізно виникне необхідність чи бажання заглянути всередину файлової структури. Можна сміливо сказати, що ця стаття свого роду шпаргалка новачка з анатомії WP.

Знання та розуміння файлової структури WordPress у загальному випадку допоможе швидко знайти потрібний файл – якщо, наприклад, потрібно самостійно внести зміни до теми WP, а в більш приватному (нехай це ніколи не знадобиться) помітити шкідливі впровадження у структуру вашого сайту.

Отже, заходимо на хостинг - не в адмінку, а саме на хостинг, і через файловий менеджер відкриваємо папку, в якій встановлено WP. Знайти її не повинно бути складно – назва була визначена при встановленні WopdPress. Теоретично зайти можна і через FTP, але для цілей ознайомлення цього робити не варто.

Перше місце, куди ми потрапляємо – кореневий каталог WordPress. На фрагменті скріншота наведено приклад з панелі керування timeweb. Ви можете побачити щось інше з погляду дизайну, але структура буде однаковою.

Папки

Як правило, в кореневому каталозі знаходяться три папки - wp-content, wp-includes і wp-admin, але, як видно з картинки, може бути ще одна - cgi-bin - місце, де знаходяться cgi-скрипти, про які зараз ми думати Не будемо.

wp-admin та wp-includes

У директоріях wp-admin і wp-includes знаходяться CSS, JavaScript і PHP файли, необхідні для функціонування вордпрес, їх НЕ рекомендується самостійно змінювати. Якщо ж хочеться експериментів, то не забувайте робити копії, щоби мати можливість відновити робочий варіант.

вміст каталогу wp-content

wp-content

Файли теми зберігаються у директорії /wp-content/themes/. Їх можна редагувати, але цього робити не варто, оскільки після оновлення всі зміни будуть втрачені. Надійніше створити дочірню тему. Якщо потрібно змінити стилі, то майже завжди в адмінці в налаштуваннях теми можна додати свої стилі. Їх не торкнеться оновлення і, відповідно, ваша праця не пропаде даремно.

У папці themes може зберігатися скільки завгодно тим, але активована може бути тільки одна в один момент часу. За замовчуванням там знаходяться Непотрібні можна видалити, просто видаливши відповідну папку повністю. Як правило, це краще робити, коли всі спроби та помилки завершені. Зміст каталогу themes ми розглянемо окремій статті.

У /wp-content/plugins/ зберігаються встановлені та завантажені плагіни, якщо вони є. Якщо їх немає, то нічого страшного, тема може працювати й без плагінів.
Файли плагінів краще не чіпати. Додатковий код можна додати до файлу functions.php дочірньої теми. Не бійтеся створювати дочірню тему. Страшно лише вперше. Пам'ятайте – якщо щось піде не так, ви завжди можете повернутися до батьківської теми та провести роботу над помилками.

У /wp-content/uploads/ зберігається завантажений нетекстовий контент – зображення, відео, MP3, PDF-файли тощо. За замовчуванням файли в папці uploads розсортовані за датою завантаження в підкаталоги: /рік/місяць/ . Важливий момент: обов'язково робіть uploads бекапа. Багато що можна відновити досить просто з вихідних джерел, а ось завантаження та відновлення медіа-контенту, навіть якщо у вас є копії, вимагатиме часу. А якщо копії не збереглися, то це справжня катастрофа. Так, папка uploads створюється не під час встановлення - спочатку її не буде, вона створиться після того, як ви почнете завантажувати картинки.

Також у директорії wp-content є інші папки, створені за замовчуванням:

  • languages ​​– тут є переклади для неангломовних сайтів у форматі.mo і.po.
  • upgrade – тимчасовий каталог, що створюється у процесі оновлення.

Багато плагінів створюють власні фолдери всередині wp-content. Наприклад, уважно подивившись, на скріншоті можна побачити папку конфігурації плагіна W3 Total Cache – w3tc-config .

Увага!якщо ви побачите в корені сайту каталоги, відмінні від перерахованих вище, навіть з найнешкідливішими на перший погляд назвами – на зразок site, blog, forum і ви точно знаєте, що ви їх не створювали – це ознака того, що ваш сайт зламаний.

Файли

Повернемося в кореневий каталог і подивимося на файли, що знаходяться там:

Залежно від налаштувань теми, тут можуть бути також:

  • robots.txt – містить інструкції для пошукових систем
  • favicon.ico - як неважко здогадатися, це фавіконка

Наведені вище файли призначені для забезпечення основних операцій WordPress. Найбільш значущі з них – .htaccess та wp-config.php:

  • .htaccess – містить інформацію про конфігурацію сервера. Зверніть увагу - точка на початку імені говорить про те, що це прихований файл, тому його можна не побачити через FTP без додаткових налаштувань.
  • wp-config.php – містить недоступні з консолі адміністратора налаштування WP, включаючи налаштування бази даних MySQL, секретні ключі, інформацію про префікс бази даних.

Будьте дуже обережні під час редагування wp-config.php або .htaccess. Невелика помилка може привести сайт до неробочого стану або зробити його недоступним.

Порада.Перед редагуванням файлів wp-config.php або .htaccess зробіть їх копії.

У цьому записі буде збиратися інформація про структуру WordPress у тому чи іншому сенсі. Структури бази даних та таблиць у базі даних - навіщо вони і що в них зберігатися. Структура папок, які файли в них знаходяться, призначення цих файлів і каталогів. Список ролей, функцій та інше.

Інформацію переніс із запису "WordPress нотатки, хитрощі та хакі", який настільки розрісся, що його потрібно вже дробити.

  • Адміністратор (Administrator)- абсолютний доступ до управління темами, користувачами, плагінами, налаштуваннями, сторінками, записами, категоріями, коментарями, експорт-імпорт контенту.
  • Редактор- редагування, створення, видалення свого та чужого контенту, модерація коментарів, редагування категорій, видалення, редагування, публікація своїх та чужих сторінок, записів, завантаження файлів.
  • Автор (Author)- створення, редагування, публікація та видалення тільки свого контенту – записів. Не можна створювати сторінки. Має право на завантаження зображень, файлів та будь-яких матеріалів.
  • Учасник (Contributor)- може додавати новий контент – запис, без права публікації. Може редагувати та видаляти свої чернетки. Не може додавати зображення до запису, тільки через використання HTML-коду, в якому буде посилання на зображення. Учасники також можуть бачити записи в консолі.
  • Передплатник (Subscriber)- можна дозволити передплатникам бачити приватні записи та сторінки без додаткових плагінів чи коду.

Структура таблиць у базі даних Wordpress:

  • wp_commentmeta – для метаданих коментарів
  • wp_comments – коментарі
  • wp_links – застаріла; зберігає інформацію, введену в розділ посилання WordPress
  • wp_options – все, що знаходиться в розділі Параметри панелі адміністратора, зберігається в цій таблиці, налаштування сайту
  • wp_postmeta – метадані записів
  • wp_posts – записи, сторінок, їх ревізії та навігаційні пункти
    • id - записи, сторінки, ревізії
    • post_author – id користувача – автора.
    • post_date - дата посту
    • post_date_gmt - дата поста в GMT
    • post_content - вміст посту
    • post_title - title посту
    • post_excerpt – опис посту
    • post_status – статус посту: publish, draft, auto-draft, inherit
    • comment_status – "open" якщо коментування посту дозволено та "closed" якщо заборонено.
    • ping_status
    • post_password - пароль для читання посту, якщо він захищений паролем
    • post_name - аліас посту, який використовуватиметься в ЧПУ посиланнях.
    • to_ping
    • pinged
    • post_modified - дата останньої модифікації посту
    • post_modified_gmt - дата останньої модифікації поста у GMT
    • post_content_filtered
    • post_parent - id батьківського запису поста, якщо батька немає, то значення 0
    • guid – URL записи у вигляді http://сайт/?p=id для постів або http://сайт/category/test/name – для сторінок
    • menu_order – нуль для посту, порядковий номер сторінки, що використовується для визначення порядку виведення сторінок
    • post_type - тип запису, можливо: post - запис, page - сторінка, revision - збережена версія сторінки або запису, attachment - медіа, наприклад сторінка зображення
    • post_mime_type
    • comment_count - кількість коментарів до посту
  • wp_terms – в основному містить інформацію з терм/таксономій (рубрика, рубрика посилань, мітка, меню)
    • term_id – id терма (наприклад категорії)
    • name - ім'я терма
    • slug - як терм писатиметься на засланні
  • wp_term_relationships – відносини між записами та рубриками, мітками та іншими таксономіями
    • object_id - id записи, посилання
    • term_taxonomy_id - id рубрики або іншого терму таксономії (рубрика, рубрика посилань, мітка)
    • term_order – використовується для сортування
  • wp_term_taxonomy – описує якого типу той чи інший терм
    • term_taxonomy_id - id таксономії
    • term_id - id терма
    • taxonomy - тип таксономії: category, link_category, post_tag, nav_menu
    • parent - батьківський терм, якщо, наприклад, категорія вкладена в категорію
    • count - кількість об'єктів (записів, посилань) пов'язаних із таксономією
  • wp_usermeta – права користувачів та додаткова інформація про зареєстрованих користувачів
  • wp_users – всі користувачі

Структура файлів Wordpress

Кореневий каталог містить такі папки та файли папки:

  • wp-config.php- у цьому php файлі прописані ім'я та пароль бази даних, кодування, префікс таблиць, мова, розмір кеша, у файл можна додати багато інших параметрів.
  • Файл.htaccess- файл додаткової конфігурації веб-сервера Apache, а також подібних до нього серверів. Дозволяє задавати велику кількість додаткових параметрів та дозволів для роботи веб-сервера в окремих каталогах.
  • wp-includes- ядро ​​Wordpress. Під час кожного оновлення папка перезаписується.
  • wp-admin- CSS, JavaScript та PHP файли, які забезпечують роботу адмін-консолі. Під час кожного оновлення папка перезаписується.
  • wp-content- містить папки для користувача і складається з папок:
    • languages ​​- містить файли перекладу движка у форматі.mo і.po
    • plugins - встановлені плагіни
    • themes- встановлені шаблони, повинен бути встановлений хоча б один шаблон. Може містити такі папки та файли:
      • index.php – шаблон головної сторінки сайту, також підвантажує файл сайдбару. Обов'язковий файл у корені папки шаблону
      • style.css - обов'язковий файл, що відповідає за css-стилі шаблону, в корені папки шаблону
      • header.php – файл, який відповідає за виведення даних у розділі та верхнього меню
      • sidebar.php - файл відповідає за генерацію бічних (додаткових) колонок. Переважно тут виводяться рубрики, теги, банери.
      • footer.php – файл відповідає за виведення підвалу, нижнього меню, копірайтів та закриває HTML-теги
      • single.php – відповідає за відображення окремих постів.
      • page.php – відповідає за відображення окремих сторінок (наприклад, «Контакти», «Про нас» і т.д.)
      • archive.php – відповідає за виведення сторінки архіву записів
      • category.php – формує сторінки, що виводить публікації за категоріями
      • tag.php – шаблон сторінки, яка виводить список публікацій за тегами
      • comments.php – файл описує відображення коментарів
      • functions.php – додатковий файл з PHP-кодом, завдяки якому можна включати або вимикати, додавати чи прибирати певний функціонал. У цей файл часто додається код користувача, якщо потрібно щось удосконалити.
      • /css/ - у цій папці можуть бути додаткові css-файли
      • /js/ – папка з файлами JavaScript
      • /images/ - папка містить вбудовані шаблон зображення
      • /languages/ - папка містить файли перекладів теми
    • uploads - медіа-файли: зображення, музика, документи тощо.

Теги шаблонів у WordPress

Теги шаблонів - це PHP-функції WordPress для виведення інформації або для налаштування блогу, наприклад wp_list_pages() - виводить список сторінок у вигляді посилань.

У wordpress теги шаблонів описані в наступних файлах:

  • wp-includes/author-template.php - теги шаблонів, пов'язані з автором
  • wp-includes/bookmark-template.php - теги шаблонів, пов'язані із закладками
  • wp-includes/category-template.php - теги шаблонів про всі умови та таксономії, у тому числі категорії та теги
  • wp-includes/comment-template.php - файл для тегів шаблонів відділу коментарів
  • wp-includes/link-template.php - теги шаблонів для посилань (постійні посилання, посилання прикріплення, архівні посилання тощо)
  • wp-includes/nav-menu-template.php - теги шаблонів для навігаційного меню
  • wp-includes/post-template.php - теги шаблонів, пов'язані з постами
  • wp-includes/post-thumbnail-template.php - файл для тегів шаблонів, пов'язаних із мініатюрами записів
  • wp-includes/general-template.php - файл для інших тегів шаблонів, які можуть використовуватися будь-де

Вордпрес - система з відкритим вихідним кодом, тому стандартна структура файлів і папок є публічно доступною інформацією, і будь-хто, включаючи хакерів, точно знає, звідки можна почати атаку на сайт.

Щоб протистояти таким атакам, можна реорганізувати стандартну файлову структуру сайту Вордпрес. У цій статті ви дізнаєтесь 2 способи змінити структуру файлів та папок одиночного сайту та мультисайт установки Вордпрес.

Застереження від Вордпрес: Робіть це на свій власний ризик Для більшості сайтів не рекомендується переносити Вордпрес в іншу папку, якщо тільки у вас немає вагомих причин для цього, і ви добре розумієте, що ви робите, тому що це може викликати проблеми з великою кількістю плагінів.

Зробіть бекап

Ви змінюватимете розташування файлів і папок, тому якщо щось піде не так, ви зможете відновити сайт з бекапу.

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

1. Перенесення сайту без зміни URL

Зазвичай перенесення файлів сайту з кореневої директорії до підпапки означає, що адреса сайту зміниться з http://ваш-сайт.ru на адресу цієї папки, наприклад, http://ваш-сайт.ru/abcd-xyz/ , але можна зробити так, щоб адреса сайту залишилася без змін, але файли знаходились у новій папці.

Створіть нову папку

Створіть нову папку у кореневій папці сайту. Це можна зробити у файловому менеджері на хостинг-панелі або через FTP.

Створення нової папки на сервері через FTP клієнт

Дайте новій папці якесь унікальне ім'я, яке непросто вгадати. Не називайте папку "wordpress", "wp-core" або щось подібне. Підберіть ім'я, яке вам щось означає, але непросто підібрати хакерам.

Перенесіть файли ядра Вордпрес до нової папки

Перенесіть ВСІ файли та папки сайту до щойно створеної папки.

По URL вашого сайту хакер буде припускати, що файли та папки сайту знаходяться в кореневій директорії, але при спробі звернутися до цих файлів він зрозуміє, що їх немає. Це збільшує шанси файлів залишитися недоторканими.

Створіть пустий файл.htaccess

Ви можете зробити те саме і для одиночної установки Вордпрес, але в цьому випадку ви не зможете змінити адресу Вордпрес в меню НалаштуванняЗагальні.

Відкрийте wp-config.phpі додайте ці рядки

ближче до кінця файлу, але перед рядком

Замініть abcd-xyz на назву папки. Якщо у вас не встановлено SSL сертифікат, замініть https в обох рядках на http .

Збережіть зміни. Сайт має бути недоступним. Тепер потрібно перемістити файли.

Переміщення файлів

Перенесіть всі файли та папки з кореневої директорії до нової створеної папки, у цьому прикладі вона називається /abcd-xyz .

Зайдіть всередину цієї папки та скопіюйте файли .htaccessі index.phpназад у кореневу директорію, звідки ви їх щойно перенесли. У результаті файли та index.phpповинні знаходитися і в кореневій папці сайту і в щойно створеній папці /abcd-xyz.

Файл .htaccessможе бути невидимий, тому в налаштуваннях файлового менеджера на хостингу або в налаштуваннях FTP клієнта зайдіть в Налаштування та поставте галочку Показувати приховані файли та папки.

Якщо після того, як ви ввімкнули опцію Показувати приховані файли в кореневій папці сайту, стали видимими інші приховані файли або папки, перенесіть їх до нової створеної папки /abcd-xyz .

Редагування файлу index.php

Щоб сайт почав працювати з файлами, що знаходяться на новій адресі, потрібно зробити зміни у файлі index.php. Відкрийте index.php, який знаходиться в кореневій папці сайту і знайдіть ці рядки, вони знаходяться ближче до кінця файлу:

Додайте адресу нової папки перед /wp-blog-header.php , так що має вийти:

Замініть /abcd-xyz на назву папки. Збережіть зміни, завантажте на сервер.

Оновлення постійних посилань

Зайдіть до адмінки сайту. Тепер URL-адреса сторінки авторизації повинна включати назву нової папки.

У цьому прикладі папка називається /abcd-xyz, тоді адреса входу зміниться на http://мій-сайт.ru/abcd-xyz/wp-login.php або http://мій-сайт.ru/abcd-xyz/wp -admin.

Зайдіть у НалаштуванняПостійні посиланнята натисніть зберегти зміни. Це автоматично оновить файл .htaccessі всі пости та сторінки будуть доступні відвідувачам.

3. Переміщення деяких папок Вордпрес

Ви можете зробити ще кілька змін у структурі папок сайту. Для цього знадобиться додати кілька рядків коду у файл wp-config.phpдля кожного наступного кроку.

Існує 2 правила, яких потрібно дотримуватися:

  1. Папку wp-includesможна переміщати в нове місце тільки разом з іншими файлами і папками, як у прикладі вище.
  2. Не можна переміщувати папку uploads. Ця папка має бути за адресою /wp-content/uploads/Але її можна перейменувати.

З цими папками можна робити зміни за допомогою коду в wp-config.php:

  • wp-content
  • plugins
  • uploads (тільки перейменування)

Коли робитимете зміни з папками wp-contentі plugins, додавайте код у wp-config.phpдо рядка

з папкою uploads- Після цього рядка.

WP-Content

Ви можете створити нову папку в кореневій папці сайту та перемістити до неї папку wp-content. Після цього відкрийте wp-config.phpта додайте цей код:

Замініть новийфайл на назву нової папки. Замініть мій-сайт.ru на назву вашого сайту, і https на http, якщо у вас не встановлено сертифікат SSL.

Якщо ви хочете перенести wp-contentу папку, яка знаходиться неу кореневій папці сайту, то замініть /newfolder/ на вашу адресу.

Plugins

Створіть нову папку, перенесіть до неї папку plugins. Додати цей код в wp-config.php:

Замініть add-folder на назву нової папки. Замініть мій-сайт.ru на назву вашого сайту, і https на http, якщо у вас не встановлено сертифікат SSL.

Якщо у вас виникла проблема сумісності з плагінами, додайте цей рядок:

Замініть add-folder на назву нової папки.

Uploads

Щоб перейменувати папку uploads, відкрийте wp-config.php, спустіться в низ файлу, нижче рядків «Це все, далі не редагуємо», і знайдіть ці 2 рядки:

Над рядком require_once(ABSPATH . "wp-settings.php"); додайте

Папка Uploadsзавжди відносна до ABSPATH, тому сліш перед wp-content/media не потрібно. Замініть media на нову назву папки uploads. У результаті має вийти:

Збережіть wp-config.php.

Якщо ви вирішили змінити назву папки uploads, то вам потрібно змінити поточну назву папки на сервері.

Зайдіть на сервер по FTP або через хостинг-панель та змініть назву папки uploadsна те ім'я, які ви дали цій папці у файлі wp-config.php.

Висновок

Якщо ви все зробили правильно, сайт повинен коректно працювати за своєю звичайною адресою без додавання суб-директорії в URL, а відвідувачі і хакери не зможуть визначити, що файли ядра Вордпрес більше не знаходяться на своєму звичайному місці в кореневій папці сайту.

Для більш детальної інформації читайте статтю Розміщуємо WordPress в окремому каталозі в документації Вордпрес.