В какой папке находятся функции ядра wordpress. Иерархия шаблонов WordPress: полное руководство. Иерархия шаблонов WordPress в действии

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

Структура директорий WordPress

Файловая структура WordPress очень проста. У вас есть папка public_html , где находятся как правило три ключевые папки, а так же множество других важных файлов, включая wp-config.php и .htaccess

Чтоб получить доступ к файлам и папкам, вы можете использовать файловый менеджер cPanel от вашего хостинг-сервиса или любой обычный

Для этого обзора мы будем использовать самый популярный ftp-клиент — FileZilla. Вот как должна выглядеть папка public_html внутри:

Прежде чем мы приступим к рассмотрению этих трех топовых папок, давайте рассмотрим файлы, которые лежат внутри public_html просто так. Прежде все это.htaccess, с помощью которого вы можете контролировать структуру постоянных ссылок, файлов и папок, а также управлять правами доступа к ним в вашей инсталляции WordPress. Вот как выглядит стандартный файл .htaccess без каких-либо изменений:

# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] # END WordPress

Затем, есть файл , который по умолчанию представляет вашу домашнюю страницу, если, конечно, он не замещен страницами типа front-page.php или home.php :

Еще один необходимый файл в этой директории – это wp-config.php . Данный файл позволяет задать базовую конфигурацию WordPress, включая настройки для базы данных MySQL , секретные ключи, и информацию о префиксе базы данных. Вот как должны выглядеть настройки вашей базы данных:

// ** MySQL settings - You can get this info from your web host ** // /** The name of the database for WordPress */ define("DB_NAME", "notarealname"); /** MySQL database username */ define("DB_USER", "notarealuser"); /** MySQL database password */ define("DB_PASSWORD", "notarealpassword"); /** MySQL hostname */ define("DB_HOST", "localhost");

Другие примечательные файлы в этой директории – это wp-activate.php , и wp-signup.php , которые все вместе отвечают за регистрацию, авторизацию и процесс подтверждения пользовательской регистрации. Файл wp-comments-post.php отвечает за функцию комментирования и предотвращение дупликации контента, в то время как wp-settings.php отвечает за установку некоторых WordPress-переменных.

Как понятно из названия папки, здесь лежит инструментарий админа. Например, admin.php (сердце данной папки) позволяет вам связать инсталляцию с базой данных, отображает панель управления WordPress и предлагает прочие ключевые функции, такие как, например, проверка того, является ли данный пользователь администратором. Если пользователь является админом, то включается использование файла wp-load.php , который в свою очередь загружает файл wp-config.php :

/** * In WordPress Administration Screens * * @since 2.3.2 */ if (! defined("WP_ADMIN")) { define("WP_ADMIN", true); } if (! defined("WP_NETWORK_ADMIN")) define("WP_NETWORK_ADMIN", false); if (! defined("WP_USER_ADMIN")) define("WP_USER_ADMIN", false); if (! WP_NETWORK_ADMIN && ! WP_USER_ADMIN) { define("WP_BLOG_ADMIN", true); } if (isset($_GET["import"]) && !defined("WP_LOAD_IMPORTERS")) define("WP_LOAD_IMPORTERS", true); require_once(dirname(dirname(__FILE__)) . "/wp-load.php");

Если вы обратите внимание на названия данных файлов, то поймете, что большинство из них говорят пользователю о выполняемых ими функциях, которые вам знакомы по админке WordPress. Например, profile.php выводит экран администрирования пользовательского профиля, theme-install.php контролирует панель установки тем, а plugin-install.php делает тоже самое для панели установки плагинов.

Что касается других важных папок внутри wp-admin , то images заполнены картинками, которые используются в административной панели WordPress, css и js – это «дома» для CSS-кода и JavaScript-скриптов, а network включает PHP-файлы, необходимые для работы мультисайтовости WordPress

Вероятно, именно здесь вы проводите большую часть своего времени, работая с WordPress, так как здесь собраны наиболее используемые файлы и функции, а именно, темы и плагины:

Каждый загруженный вами плагин имеет свою собственную папку в этой общей папке, как видно в примере выше. Контент каждой папки разумеется, варьируется от плагина к плагину. Вот, например, как выглядит папка популярного плагина Akismet.

Если у вас возникли какие-то , то следует воспользоваться FTP-доступом для отключения расширений. Сделать это можно удалив или просто временно переименовав папку с конфликтным плагином.

Так же, как и в случае с плагинами, каждая тема имеет собственные подпапки. Если мы откроем папку с любой темой, то увидим там множество PHP-файлов, которые все вместе создают внешний вид и структуру вашей темы. Возьмем знаменитую тему Divi от Elegant Themes в качестве примера, в главной папке которой мы найдем файлы , a functions.php , a sidebar.php , и style.css , среди остальных. Divi также имеет отдельные папки для css, картинок и js темы, что весьма стандартно для большинства качественных тем. Но, как бы то ни было, некоторые другие папки достаточно уникальны, к примеру, epanel и et-pagebuilder :

Еще одна папка – это wp-includes , и она довольно большая. wp-includes содержит все те файлы, которые не вошли в описанные ранее папки. Условно говоря, именно благодаря этой папке сайт работает как часы.

Папка так важна, потому что здесь находится большинство файлов WordPress-ядра. Новая инсталляция WordPress содержит 140 различных файлов в главной директории и 14 разных папок (на момент написания статьи), включая сертификаты, шрифты, js и виджеты.

Но эти подпапки не так важны, как файлы, которые находятся в главной директории, например, functions.php . Этот маленький файл является важной частью ядра WordPress, так как он содержит множество самых разных функций, которые и позволяют WordPress стабильно работать. Например, данные строчки кода – это первое, что вы увидите, если откроете этот файл, и эта функция нужна, чтоб трансформировать данные в другие форматы.

/** * Convert given date string into a different format. * * $format should be either a PHP date format string, e.g. "U" for a Unix * timestamp, or "G" for a Unix timestamp assuming that $date is GMT. * * If $translate is true then the given date and format string will * be passed to date_i18n() for translation. * * @since 0.71 * * @param string $format Format of the date to return. * @param string $date Date string to convert. * @param bool $translate Whether the return date should be translated. Default true. * @return string|int|bool Formatted date string or Unix timestamp. False if $date is empty. */ function mysql2date($format, $date, $translate = true) { if (empty($date)) return false; if ("G" == $format) return strtotime($date . " +0000"); $i = strtotime($date); if ("U" == $format) return $i; if ($translate) return date_i18n($format, $i); else return date($format, $i); }

Другие ключевые файлы – это cache.php (управляет процессом добавления и удаления данных из кеша, а также за отвечает за его закрытие или перезапуск), links.php (функциональность, которая отвечает за ссылки WordPress) и version.php (отвечает за версию WordPress).

Очень надеюсь, что данная статья позволит новичкам получить базовые представления и знания о структуре вашего сайта на WordPress. Согласитесь — не каждому водителю нужно быть автомехаником, но предствлять где в авто находится мотор, а где подвеска, стоит всем кто за рулем. Ну это так, к слову 🙂

В этой записи будет собираться информация о структуре 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 - файл для других тегов шаблонов, которые могут использоваться где угодно

При работе с 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 имеет четко предопределенную структуру каталога, в котором центральные папки – это 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, но это уже будет несколько сложнее.

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

Чтобы противостоять таким атакам, можно реорганизовать стандартную файловую структуру Вордпресс сайта. В этой статье вы узнаете 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 в отдельном каталоге (рус .) в документации Вордпресс.


Top