Браузеры

Структура вордпресс. Инструкция для новичков по файловой структуре WordPress

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

Внутреннее устройство WordPress

Мы все знаем, как работать с WordPress. Все начинается с входа в панель управления, после чего следует публикация, изменение или загрузка контента, установка или обновление необходимых плагинов, резервное копирование и так далее. Но задумывались ли вы о том, как все это работает?

Базовая основа всех сайтов - HTML (от англ. HyperText Markup Language - «язык гипертекстовой разметки»).

Конечной целью WordPress является генерация HTML-страниц, которая происходит динамически.

Ключевой термин для понимания здесь - «динамически». Термины «HTML-страница» и «веб-страница» являются синонимами. На самом базовом уровне WordPress использует PHP и базу данных SQL для хранения всех своих данных.

Таким образом, у нас есть два объекта:

  • PHP-код, который составляет ядро WordPress
  • и база данных, которая является памятью WordPress.

Каждая CMS WordPress использует одну базу данных. Не больше и не меньше. Каждый бит информации, которую вы ввели или будете добавлять на сайт в будущем, хранится в базе данных WordPress.

Сюда входят:

  • логин пользователя, пароль (зашифрованный с помощью MD5) адрес электронной почты и др.;
  • все записи, страницы, теги, категории и связи между ними;
  • пользовательские типы записей;
  • ревизии, черновики и удаленные записи;
  • одобренные комментарии и ожидающие модерации, а также всякий спам;
  • параметры настройки темы;
  • данные плагинов и многое другое.

А вот изображения, документы и другие загружаемые файлы не хранятся в базе данных WordPress. Они лежат в папке « wp_content ». Давайте остановимся на этом более подробно.

Все изображения (и другие медиафайлы), которые загружаются на сайт, хранятся в каталоге « uploads ». Они распределенные по годам, месяцам и дням. Эта папка может считаться базой данных для всех нетекстовых данных - изображений, PDF-файлов, видео, MP3 и другого. Доступ к этой папке и вложенным также должен быть ограничен. Это можно сделать путем изменения файла.htaccess , который находится в каталоге wp_content .

Поэтому, создавая резервную копию нужно скопировать не только папки установки WordPress. Вам необходимо скопировать и базу данных и всё содержимое корневого каталога.

Анатомия запросов в WordPress

Или, как мне нравится это называть,

Что происходит, когда кто-то просматривает ваш сайт?

Когда кто-то посещает ваш сайт, WordPress динамически генерирует HTML-код (в соответствии с CSS и JS), который отображается в виде странички сайта. Вы не увидите расширение.html после URL-адреса (как вы могли видеть на некоторых старых веб-сайтах), так как это содержимое генерируется динамически.

Вот что происходит при запросе веб-страницы:

  1. Браузер посетителя запрашивает веб-страницу.
  2. Ядро WordPress (может считаться мозгом WordPress) вызывает требуемые PHP-скрипты, начиная с index.php .
  3. Затем ядро ​​WP соединяется со своей базой данных и извлекает данные (записи, страницы, комментарии и другую информацию).
  4. Затем он объединяет извлеченные данные, данные из активных в настоящее время плагинов и текущую активную тему и генерирует HTML-код «на лету» то есть «динамически».
  5. Затем он обслуживает этот динамически сгенерированный HTML-код в браузере посетителя.

По умолчанию в WordPress папкой для хранения загружаемых изображений и других мультимедийных (и не очень мультимедийных) файлов является wp-content/uploads/ . Хоть этот адрес и выглядит нормально, но бывают случаи когда его необходимо изменить на другой, например, для того чтобы сделать картинки на поддомене или просто чтобы был более эстетичный и радующий глаз адрес до ваших картинок и медиафайлов, типа: http://paperplane.su/images/ . Это можно легко сделать как на новых, так и на существующих веб-сайтах на WordPress. Но есть некоторые различия в разных версиях WordPress, в последних версиях это стало сделать немного сложнее (притом изменения разработчиков не совсем обоснованы).

Изменить папку загрузки в WordPress версии 3.5 и новее¶

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

  • Откройте файл wp-config.php вашего блога, который лежит в корне сайта (с помощью FTP-доступа). Затем необходимо добавить небольшой фрагмент PHP-кода, чтобы установить свой каталог для загрузок, но будьте осторожны, неверное редактирование файла можете обрушить сайт. Потому зарезервируйте у себя на компе этот файл и редактируйте только через FTP, а не через интерфейс самого WordPress.
  • Чтобы поменять на свою папку, например, просто images от корня сайта (т.е. адреса картинок будут начинаться с http://paperplane.su/images/ ) необходимо добавить следующий код:

Если же вы хотите, чтобы ваша папка для загрузок находилась вне директории wp-content, например http://www.example.com/files/ , то вам нужно установить путь для загрузок в wp-config.php вот так:

1 define("UPLOADS" , "" . "files");

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

Изменить папку загрузки в старых версиях WordPress (до 3.5)¶

В старых версиях WordPress изменить папку очень просто (я до сих пор не понимаю почему эту возможность аннулировали). В принципе и объяснять нечего, но до кучи я это сделаю:

  • В админке WordPress, пройдите в меню Параметры -> Медиафайлы . Чуть ниже увидите раздел , в который и нужно добавить адрес папки. В поле Сохранять файлы в этой папке введите имя папки, которые вы хотите использовать вместо wp-content/uploads .
  • Во втором поле Полный URL-путь к файлам , если нужно, то введите полный URL-путь к новой папке изображений вместе доменом. Но нужно это в редких случаях, например, чтобы организовать хранения картинок на поддомене.

Не забудьте сохранить изменения. И обязательно после изменений проверьте вступили ли они в силу путём создания тестового поста и добавления в него изображений. Если всё прошло хорошо, то ваши картинки закачаются куда надо и будут доступны для добавления в пост.

Возможные проблемы¶

Неправильный полный путь URL - необходимо наверняка знать свой абсолютный путь сайта на сервере от корня файловой системы. Вы этот путь должны либо знать, либо посмотреть где-нибудь, либо спросить у поддержки вашего хостинга. Например в панели администрирования хостингом CPanel ожно посмотреть свой точный путь, в других по идеи тоже можно. Он должен выглядеть в большистве случаем примерно следующим образом /home/username/public_html/images .

Права на папку - неверная настройка прав на выбранную вами папку не позволит добавлять в неё ничего. Убедитесь, что выбранная вами папка имеет права доступа 777 (возможность записи в неё всем). Вы можете сделать это в админке своего хостинга или в FTP-клиенте, что юзаете.


При работе с 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, темах, плагинах и обо всех пользовательских загрузках, которые хранятся на сайте? Я расскажу обо всем этом в данной статье.

Зачем нужно знать файловую структуру WordPress?

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

В этой статье вы узнаете:

  • Какие файлы и каталоги являются корневыми.
  • Где WordPress хранит изображения и медиа загрузки.
  • Где WordPress хранит темы и плагины.
  • Где хранятся файлы конфигурации.

А теперь давайте перейдем непосредственно к изучению файловой структуры WordPress.

Доступ к файлам и каталогам WordPress

Для начала зайдите в WordPress сервер через FTP-клиент. Для более подробной информации читайте инструкцию, как использовать FTP для загрузки файлов WordPress (в процессе написания). Более простая альтернатива FTP – это File Manager (веб-приложение со встроенной панелью администрирования cPanel). Как только вы зайдете в WordPress через FTP или File Manager, вы увидите структуру файлов и каталогов примерно таким образом:

Красной рамкой выделены корневые файлы WordPress. Именно от этих файлов зависит корректная работа сайта, ни в коем случае ничего в них самостоятельно не меняйте.

Вот список этих файлов и папок в корневом каталоге:

  • wp-admin
  • wp-includes
  • wp-activate.php
  • wp-blog-header.php
  • wp-comments-post.php
  • wp-config-sample.php
  • wp-cron.php
  • wp-links-opml.php
  • wp-load.php
  • wp-login.php
  • wp-mail.php
  • wp-settings.php
  • wp-signup.php
  • wp-trackback.php

Файлы конфигурации

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

  • .htaccess– файл конфигурации сервера, WordPress использует его для управления постоянными ссылками и .
  • wp-config.php– сообщает WordPress, как подключиться к базе данных. Он также устанавливает некоторые важные настройки.
  • index.php – индексный файл, который в основном загружает и инициализирует все WordPress файлы при запросе страницы пользователем.

Иногда возникает необходимость редактирования wp-config.php или.htaccess файлов. Будьте при этом предельно внимательны и осторожны. Любая незначительная ошибка может сделать ваш сайт недоступным. Именно поэтому перед тем как что-либо здесь менять обязательно сделайте резервные копии этих файлов. Если в корневом каталоге вы не видите файл.htaccess, то прочтите инструкцию, почему в корневом каталоге не виден файл.htaccess (в стадии написания).

В зависимости от установки WordPress в корневом каталоге у вас могут быть или не быть следующие файлы:

  • robots.txt – содержит все инструкции для ползающих поисковых ботов
  • Favicon.ico – файл favicon иногда генерируется самими хостерами.

В папке wp-content вордпресс хранит все загрузки, плагины и темы.

Давайте заглянем внутрь папки wp-content, чтобы понять, как она работает и что здесь можно делать.

  • themes
  • plugins
  • uploads

WordPress хранит темы сайта в папке /wp-content/themes/. Вы можете редактировать файл темы, однако в основном это не рекомендуется делать. Как только вы обновите версию темы сайта, все ваши изменения будут прописаны во время этого обновления. Именно поэтому рекомендуется для настройки основной темы.

Все загруженные и установленные плагины WordPress хранит в папке / wp - content / plugins / . Не рекомендуется редактировать файлы плагина, если вы только сами не создали плагин для нужд сайта.

Во многих WordPress инструкциях можно увидеть коды, которые вставляются на сайт. Лучше всего их добавлять в файл дочерней темы functions.php или в плагин site-specific.

WordPress хранит все изображения и медиа загрузки в папке / wp - content / uploads / . По умолчанию они хранятся в папках по принципу / year / month / . Каждый раз при бэкапе сайта, не забывайте об этой папке.

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

В каталоге wp-content хранятся также другие стандартные папки, как например:

  • languages – в этой папке хранятся все языковые файлы не англоязычных сайтов.
  • upgrade – это временная папка, создаваемая WordPress при обновлении версии сайта.

В wp-content также хранятся папки, которые создаются плагинами. Например, на скриншоте выше представлена папка галереи, созданная плагином . В некоторых из этих папок могут храниться очень важные файлы. Например, в папке «gallery» хранятся все изображения. Всегда делайте резервные копии подобных папок, чтобы избежать потери важных данных.

Другие папки содержат файлы, которые можно смело удалять. Например, W3 Total Cache или WP Super Cache в своих папках могут хранить кэшированные файлы.

Вот и все. Надеюсь, эта статья помогла вам разобраться в файловой структуре WordPress.

Не забывайте подписываться на мой YouTube канал, находите меня в ВКонтакте и в Твиттере.

Добрый вечер, друзья-товарищи!

Готовил к публикации статью на другую тему, но столкнулся с тем, что описываемые изменения опять затрагивали файл в папке wp-includes . Напомню, что в статье мы уже редактировали файл из этой папки – /wp_includes/taxonomy.php . Тогда меня смутил этот момент и, вот, опять я пришел к этому. Поэтому, прежде, чем двигаться дальше – решил окончательно разобраться можно ли вносить изменения в файлы папки wp-includes ?

Поиск дал однозначный ответ: Редактировать файлы в папке wp-includes НЕЛЬЗЯ!

В wp-includes расположены файлы ядра WordPress и при обновлении могут быть обновлены или удалены, в зависимости от изменений, в очередной версии WP.

Конечно, вы можете внести изменения в системные файлы (код же открытый), но тогда у вас есть два варианта:

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

2. Вы фиксируете все изменения, внесенные вами в файлы ядра, и после обновления вновь повторяете эти правки. Тоже не хорошо. Если сразу не избавиться от этой вредной привычки – редактировать системные файлы, то изменений может накопиться очень много, и каждый раз повторять их – это дополнительное и не очень интересное занятие, которое может привести вас к первому варианту – отказу от обновлений. И потом, даже если вам будет не лень каждый раз вносить ваши изменения в ядро, то после очередного обновления может случиться так, что ваш код просто не впишется в новое ядро, в виду каких-то глобальных изменений.

Вывод – нужно бросать эту вредную привычку раз и навсегда!

Каким образом? Повышать свой уровень знаний WordPress. Система создана таким образом, что всегда можно найти вариант изменений без вмешательства в ядро.

Наиболее легкий вариант решить существующую задачу – найти плагин с нужным функционалом. А раз есть плагин, то тоже самое можно реализовать и без плагина.

function my_category_order($orderby, $args) { if($args["orderby"] == "sort") return "t.sort"; else return $orderby; } add_filter("get_terms_orderby", "my_category_order", 10, 2);

function my_category_order ($ orderby , $ args )

if ($ args [ "orderby" ] == "sort" )

return "t.sort" ;

else

return $ orderby ;

add_filter ("get_terms_orderby" , "my_category_order" , 10 , 2 ) ;

Функция get_terms_orderby передает поле для условия ORDER BY sql-запроса. А мы добавили дополнительный код к этой функции, в котором фигурирует наше поле для сортировки – sort .

В пунктах 1 и 3 остаётся все без изменений, и таким образом, мы реализовали пользовательскую сортировку категорий без использования плагина. Но, теперь наш код не боится обновлений WordPress. Сортировка будет работать для текущего шаблона, если захотите перенести в другой шаблон – нужно повторять пункты 2 и 3 для новой темы.

Таким образом, в большинстве случаев, можно уходить от внесения изменений в файлы папки wp-includes .

Надеюсь, вы последуете моему примеру и откажетесь от редактирования файлов ядра WordPress. Действительно – это очень нехорошая практика, особенно, когда делаешь не для себя, а выполняешь чей-то заказ. Ничего не подозревающий человек, выполнит обновление WordPress и потеряет что-то полезное, за что было заплачено, и может, даже, не догадаться о такой “бяке”. Вернется к старой версии, откажется от обновлений и другим будет передавать свой негативный опыт.

Успехов в изучении WordPress! Берегите себя и клиентов от стрессов! =)