Структура вордпресс. Инструкция для новичков по файловой структуре 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) - абсолютный доступ к управлению темами, пользователями, плагинами, настройками, страницами, записями, категориями, комментариями, экспорт-импорт контента.
  • Редактор (Editor) - редактирование, создание, удаление своего и чужого контента, модерация комментариев, редактирование категорий, удаление, редактирование, публикация своих и чужих страниц, записей, загрузка файлов.
  • Автор (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 и добавьте этот код:

Замените newfolder на название новой папки. Замените мой-сайт.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 в отдельном каталоге (рус .) в документации Вордпресс.