WordPress. Загрузка файлов. Часть 1. Категория: Web-разработка • CMS WoprdPress
В WordPress есть множество функций, предназначенных для загрузки файлов. Сразу разобраться в них трудно — названия похожие и функционал часто дублируется. Рассмотрим последовательно все функции и попробуем загрузить файлы на сервер сначала в панели управления, а потом и в публичной части сайта. Для этого создадим плагин и будем его постепенно изменять, чтобы рассмотреть все возможности WordPress по загрузке файлов.
Загрузка файлов в панели управления
Простая загрузка одного файла
На первом этапе плагин просто загружает файл в соответствующую поддиректорию (year/month
) директории /wp-content/uploads
. Запись в таблицу базы данных wp_posts
при этом не добавляется, т.е. этот файл не является вложением и недоступен для просмотра в библиотеке медиафайлов. Всю работу по загрузке файла выполняет функция wp_handle_upload()
, которая является оберткой для нативной php-функции move_uploaded_file()
.
<?php /* * Plugin name: Загрузка файлов * Description: Пример загрузки файлов в панели управления */ /* * Добавляем страницу плагина в панели управления */ add_action('admin_menu', function () { add_menu_page( // содержимое тега title этой страницы 'Загрузка файлов', // название пункта меню для этой страницы 'Загрузка файлов', // права доступа, чтобы был показан этот пункт меню 'upload_files', // уникальный идентификатор меню (страницы) 'tokmakov_upload_page', // функция выводит содержимое этой страницы function () { ?> <div> <h2>Загрузка файлов</h2> <p> Плагин позволяет загружать файлы в директорию <code>/wp-content/uploads</code>. Обратите внимание, что загружаются только файлы, это не вложения (attachments). Записи в таблицу <code>wp_posts</code> не добавляются, поэтому в библиотеке медиафайлов эти файлы будут не видны. </p> <?php if (isset($_SESSION['tokmakov_upload_file'])): ?> <p><?= $_SESSION['tokmakov_upload_file']; ?></p> <?php unset($_SESSION['tokmakov_upload_file']); ?> <?php endif; ?> <?php $action = admin_url('admin-post.php'); $redirect = $_SERVER['REQUEST_URI']; ?> <form action="<?= $action; ?>" method="post" enctype="multipart/form-data"> <?php wp_nonce_field('tokmakov_upload_file'); ?> <input type="hidden" name="action" value="tokmakov_upload_file" /> <input type="hidden" name="redirect" value="<?= $redirect ?>" /> <input type="file" name="tokmakov_upload_file" required /> <input type="submit" value="Загрузить файл" /> </form> </div> <?php }, // иконка для страницы настроек плагина 'dashicons-upload', // позиция страницы, в конце списка 90 ); }); /* * Запускаем сессию, чтобы передавать сообщение о результате * обработки файла после перезагрузки страницы */ add_action('init', function () { if (session_id() == '') { session_start(); } }); /* * Обрабатываем отправленные данные формы обратной связи */ add_action('admin_post_tokmakov_upload_file', function () { // проверяем защиту nonce и права пользователя $check1 = wp_verify_nonce( $_POST['_wpnonce'], 'tokmakov_upload_file' ); $check2 = current_user_can('upload_files'); ob_start(); if ($check1 && $check2) { // проверка пройдена, можно загружать файл $overrides = ['test_form' => false]; $result = wp_handle_upload( $_FILES['tokmakov_upload_file'], $overrides ); // показываем результаты загрузки файла if (isset($result['error'])) { echo 'Ошибка при загрузке файла'; } else { echo 'Файл был успешно загружен'; } } else { echo 'Проверка не пройдена, файл не загружен'; } $_SESSION['tokmakov_upload_file'] = ob_get_clean(); // после отправки формы делаем редирект, чтобы предотвратить // повторную отправку, если пользователь обновит страницу $redirect = home_url(); if (isset($_POST['redirect'])) { $redirect = $_POST['redirect']; $redirect = wp_validate_redirect($redirect, home_url()); } wp_redirect($redirect); die(); });
Массив $_FILES
, который содержит всю информацию о загруженном файле:
Array ( [tokmakov_upload_file] => Array ( [name] => sunrise.jpg [type] => image/jpeg [tmp_name] => D:\work\temp\phpED8F.tmp [error] => 0 [size] => 490815 ) )
И массив, который возвращает функция wp_handle_upload()
в случае успешной загрузки файла:
Array ( [file] => D:/work/localhost24/www/wp-content/uploads/2019/08/sunrise.jpg [url] => http://www.host24.ru/wp-content/uploads/2019/08/sunrise.jpg [type] => image/jpeg )
Если файл не был загружен, функция возвращает сообщение об ошибке:
Array ( [error] => Извините, этот тип файла недопустим по соображениям безопасности. )
Загрузка одного вложения (attachment)
Хорошо, файл загружать мы умеем, посмотрим, как теперь из файла сделать вложение. Для этого достаточно указать функции media_handle_upload()
ключ массива $_FILES
, который содержит данные о загружаемом файле. И функция сама загрузит файл в директорию uploads
и создаст запись о вложении в таблице
в базе данных.
<?php /* * Plugin name: Загрузка файлов * Description: Пример загрузки файлов в панели управления */ /* * Добавляем страницу плагина в панели управления */ add_action('admin_menu', function () { add_menu_page( // содержимое тега title этой страницы 'Загрузка файлов', // название пункта меню для этой страницы 'Загрузка файлов', // права доступа, чтобы был показан этот пункт меню 'upload_files', // уникальный идентификатор меню (страницы) 'tokmakov_upload_page', // функция выводит содержимое этой страницы function () { ?> <div> <h2>Загрузка файлов</h2> <p> Плагин позволяет загружать файлы в директорию <code>/wp-content/uploads</code>. При этом создаются записи в таблице БД <code>wp_posts</code>, то есть эти файлы являются вложениями и доступны для просмотра в библиотеке медиафайлов. </p> <?php if (isset($_SESSION['tokmakov_upload_file'])): ?> <p><?= $_SESSION['tokmakov_upload_file']; ?></p> <?php unset($_SESSION['tokmakov_upload_file']); ?> <?php endif;
возвращает URL папки wp-content в WordPress
2.6.0 wp-includes / link-template.php
Прежде всего — что такое wp-content
?
Это такая папка (директория), которая находится прямо в директории установки WordPress:
Как видно по скриншоту, в wp-content
содержатся некоторые другие папки, а именно:
plugins
— папка с установленными на сайте плагинами,themes
— с темами соответственно,upgrade
— нужна при обновлении движка, плагинов и тем,uploads
— папка с медиафайлами сайта, в некоторых случаях может быть переназначена.
С wp-content
разобрались, теперь переходим собственно к функции WordPress content_url().
Она возвращает абсолютный URL к wp-content
на сайте.
Протокол соединения (то есть http://
или https://
) определяется функцией is_ssl().
content_url( $path = '' )
- $path
- (строка) (параметр не обязателен) Какой-нибудь дополнительный путь относительно директории
wp-content
, например к папке тем (/themes/
) или плагиновplugins
.Относительно слэшей можете не беспокоиться, функция автоматически удаляет левый слэш (если такой имеется, php-функцией
) и затем добавляет его сама. ltrim()Если в качестве параметра передано не строковое значение (массив, объект и так далее), то он просто будет проигнорирован.
Примеры использования функции content_url()
Несколько нехитрых примеров:
// в качестве примера возьму свой сайт https://misha.blog echo content_url(); // https://misha.blog/wp-content/
$additional_path = '/themes/'; // путь к папке с темами $url = content_url( $additional_path ); echo $url; // https://misha.blog/wp-content/themes/
$additional_path = 'themes/'; // тоже путь к папке с темами, но только без слэша в начале $url = content_url( $additional_path ); echo $url; // https://misha.blog/wp-content/themes/ - результат тот же
Вкратце про фильтр content_url
При помощи этого фильтра вы можете изменить возвращаемые значения всех функций content_url() на сайте. Для этого в functions.php
вставляем код примерно следующего содержимого:
function true_change_wp_content_url( $url, $path ) { // как видите фильтр позволяет оперировать параметрами $url (результат действия функции) и $path (описано выше) // есть люди, которые полностью скрывают следы использования WordPress, в том числе переименовывают папку wp-content return str_replace('wp-content', 'misha-content', $url); } add_filter( 'content_url', 'true_change_wp_content_url', 10, 2);
Миша
В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.
Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.
Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда сделаем вам всё на лучшем уровне.
Структура WordPress — анатомия движка
Шпаргалка о том, как устроен сайт на Вордпресс.
Корневой каталог WordPress содержит три папки: wp-content, wp-includes и wp-admin вместе с кучей разных PHP файлов, которые требуются для основных операций WP. Наиболее значимым из этих файлов является «wp-config.php». Изменяя этот файл, можно добавить кучу ключевых вариантов настройки WordPress, которые не доступны из консоли администратора. Также в корне сайта лежат и другие системные файлы (например, wp-settings.php, wp-config.php) которые влияют на настройки сайта.
Рассмотрим вкратце анатомию движка ВордПресс и за что отвечают те, или иные файлы и папки.
wp-admin
Эта папка содержит различные файлы, такие как CSS, JavaScript, и PHP, которые обеспечивают функциональность консоли и административной части сайта.
wp-content
Папка wp-content содержит все загруженные пользовательские данные и разделяется на другие вложенные папки:
- languages
- plugins
- themes
- uploads
Папка «languages» содержит файлы переводов и локализации движка в формате .mo и .po. Если вы хотите переводить свой сайт, вам нужно начинать с этой папки.
Каталог «themes» содержит все загруженные темы (шаблоны).
Вы можете загрузить в эту папку много тем, но активировать сможете только одну тему (не считаем некоторые плагины, которые позволяют активировать больше). Кроме того, каталог «themes» не может быть пустым, так как для WordPress необходима по крайней мере одна тема для корректной работы!
По умолчанию папка «themes» уже содержит внутри две темы: Twenty Thirteen и Twenty Fourteen.
Аналогичным образом, «plugins» используется для хранения установленных плагинов на вашем сайте. В отличие от каталога «themes», этот каталог может быть пуст и WordPress будет прекрасно работать без использования каких-либо сторонних плагинов. Вы также можете активировать столько плагинов, сколько необходимо (правда, хорошая практика заключается в установке только необходимых плагинов, поскольку количество установленных плагинов влияет на скорость работы сайта).
Все картинки (и другие медиа-файлы) хранятся в каталоге «uploads», с разбивкой по годам, месяцам и/или дням. Эта папка представляет собой базу данных для всего не-текстового контента: изображения, видео, MP3, PDF-файлы, и т.д.
Сразу после установки WordPress папки «uploads» не будет, она будет создана автоматически после того, как вы начнете загружать медиа-файлы через консоль.
wp-includes
Папка «wp-includes» содержит в себе все основные и необходимые файлы для запуска WordPress через фронтэнд (пользовательский интерфейс). Папка содержит файлы PHP, CSS, JavaScript, и файлы изображений WordPress, которые обеспечивают основные функции программного обеспечения. Другими словами – это ядро движка ВордПресс.
Папки wp-admin и wp-includes являются основными папками WP, поэтому в них желательно ничего не изменять. При каждом обновлении ВордПресс происходят изменения файлов в этих папках, и ваши правки будут утеряны.
Анатомия темы
Анат
WordPress. Порядок загрузки страницы. Категория: Web-разработка • CMS WoprdPress
Итак, пользователь набрал в адресной строке браузера URL WordPress-сайта и нажал Enter. Произошел резолвинг доменного имени, и браузер обратился по конкретному IP-адресу к хостинг-серверу с запросом на загрузку сайта. Что происходит дальше в последующие доли секунды, пока сайт не отобразится в окне браузера?
1. Загрузка файла wp-load.php
Все начинается с загрузки файла wp-load.php
в корневом каталоге сайта.
2. Загрузка файла wp-config.php
Это главный конфигурационный файл, содержит информацию для подключения к базе данных и устанавливает некторые константы.
3. Загрузка файла wp-settings.php
Установка значений констант WP_MEMORY_LIMIT
, WP_MAX_MEMORY_LIMIT
, WP_DEBUG
, SCRIPT_DEBUG
, WP_CONTENT_DIR
, WP_CACHE
и других.
4. Загрузка файла advanced-cache.php
Загрузка advanced-cache.php
, если этот файл существует. В терминологии плагинов WordPress этот файл является так называемым «вкраплением». Он создается автоматически, если на сайте установлен один из кеш-плагинов. Этот файл содержит конфигурационную информацию для работы кеширования.
5. Загрузка файла wp-content/db.php
WordPress позволяет разработчикам создавать свои абстрактные слои БД и загружать их через файл db.php
. Как правило, этот файл используется кеш-плагинами для оптимизации работы БД. Поэтому, если такой файл существует, он загружается на этом этапе.
6. Подключение к базе данных
Соединение с сервером MySQL и подключение к указанной в wp-config.php
или db.php
базе данных. Если по какой-то причине WordPress не удается подключиться к БД — будет выдано сообщение «Error establishing database connection».
7. Загрузка файла object-cache.php или wp-includes/cache.php
Загрузка файла object-cache.php
, если такой есть. Если нет, попытка загрузить файл cache.php
в директории wp-includes
. Если и этого файла нет, то следующий шаг.
8. Загрузка файла wp-content/sunrise.php
Если сайт является частью сети (режим Multisite), то будет загружен файл wp-content/sunrise.php
.
9. Загрузка библиотеки локализации
Загрузка файла wp-includes/l10n.php
для включения системы локализации. На данном этапе будет учтен выбранный язык, региональные параметры и файлы для перевода.
10. Загрузка must use плагинов
Загрузка обязательных к использованию плагинов. Это плагины, которые устанавливаются в специальную папку mu-plugins
и которые всегда активны для сайта и сайтов сети.
11. Запуск события muplugins_loaded
Т.е. будет вызвана функция do_action()
с параметром muplugins_loaded
. Как следствие — будут вызваны все функции, привязанные к этому событию с помощью add_action()
.
12. Загрузка всех активированных плагинов
Список активированных плагинов хранится в таблице wp_options
базы данных, имя опции — active_plugins
. Таким образом на этапе загрузки игнорируются все установленные, но неактивные плагины.
13. Загрузка файла pluggable.php
Файл pluggable.php
хранит функции, которые могут быть переопределены WordPress-плагинами. WordPress проверит, определены ли функции из файла pluggable.php
какими-то другими активными плагинами. Если нет, будут определены функции из pluggable.php
.
14. Запуск события plugins_loaded
Т.е. будет вызвана функция do_action()
с параметром plugins_loaded
. Как следствие — будут вызваны все функции, привязанные к этому событию с помощью add_action()
.
15. Загрузка Rewrite Rules
Будут загружены правила преобразования ссылок. Другими словами, на сайте все ссылки будут search engine friendly, вместо ссылок вида www.server.com/?p=12345
16. Инициализация $wp_query, $wp_rewrite, $wp
Инициализация глобальных переменных:
$wp_query
— содержит экземпляр классаWP_Query
$wp_rewrite
— содержит экземпляр классаWP_Rewrite
$wp
— содержит экземпляр классаWP
17. Запуск события setup_theme
Т.е. будет вызвана функция do_action()
с параметром setup_theme
. Как следствие — будут вызваны все функции, привязанные к этому событию с помощью add_action()
.
18. Загрузка файла functions.php дочерней темы
Файл functions.php
содержит набор функций, применимых для каждой темы оформления индивидуально. При использовании дочерней темы, на на данном этапе будет загружен functions.php
именно дочерней темы.
19. Загрузка файла functions.php родительской темы
Если используется дочерняя тема, то после загрузки functions.php
из дочерней темы будет загружен functions.php
родительской темы.
20. Запуск события after_setup_theme
Событие запускается после того, как WordPress определился с тем, какая тема оформления активна на данный момент, и загрузил ее файл functions.php
.
21. Настройка текущего пользователя
Теперь WordPress загружает объект текущего пользователя. Это позволяет понять, какие запросы могут быть выполнены в дальнейшем в соответствии с текущей ролью пользователя и его привилегиями.
22. Запуск события init
На данном этапе WordPress загрузил уже все необходимое для работы. Это самое популярное событие у разработчиков — ядро загружено, плагины и тема активированны, пользователь авторизован, но на экран еще ничего не выведено.
23. Запуск события widget_init
Событие позволяет регистрировать виджеты и выполнять код, необходимый для их работы.
24. Выполнение функции wp()
Теперь WordPress вызывает функцию wp()
из файла wp-includes/functions.php
. Эта функция устанавливает основной запрос, т.е. среду WordPress.
Посмотрим на код, как устанавливается среда WordPress:
function wp($query_vars = '') { global $wp, $wp_query, $wp_the_query; $wp->main($query_vars); if (!isset($wp_the_query)) { $wp_the_query = $wp_query; } }
class WP { /*...*/ public function main($query_args = '') { $this->init(); // устанавливает текущего пользователя $this->parse_request($query_args); // разбирает указанные параметры запроса и параметры URL (ЧПУ) $this->send_headers(); // устанавливает header() заголовки $this->query_posts(); // получает записи по параметрам запроса $this->handle_404(); // выставляет статус 404, если записей по запросу не найдено // устанавливает глобальные переменные: $query_string, $posts, $post, $request, $more, $single, $authordata $this->register_globals(); // фильтр среды WordPress после того, как она была установлена do_action_ref_array('wp', array(&$this)); } /*...*/ }
Фильтр request
срабатывает в конце метода WP::parse_request()
, позволяя изменить свойство WP::query_vars
, которое содержит переменные запроса, используемые в методе WP::query_posts()
.
Фильтр parse_request
срабытывает в конце метода WP::parse_request()
, сразу после фильтра request
. В фильтр передается экземпляр класса WP
по ссылке, так что можно изменить не только переменную класса $query_vars
, но и другие переменные.
Фильтр pre_get_posts
срабатывает абсолютно для всех запросов, не только для основного. Для основного запроса (из кода выше) он срабатывает во время вызова метода WP::query_posts()
, т.е. после request
и parse_request
.
Фильтр wp
срабытывает в конце метода WP::main()
, в этот момент записи уже получены. В фильтр передается экземпляр класса WP
по ссылке. Это самое раннее событие, когда работают условные теги.
25. Запуск события template_redirect
Событие происходит прямо перед тем, как WordPress определяет, какой шаблон должен быть использован.
26. Загрузка feed-шаблона для RSS
Если запрашиваемый контент относится к RSS-feed, WordPress загружает соответствующий feed-шаблон.
27. Загрузка основного шаблона (темы)
WordPress начинает загружать файлы текущей активной темы в соответствии с ее иерархией. Как правило, все начинается с файла, который содержит главный цикл.
28. Запуск события shutdown
В самом конце, перед завершением исполнения всего PHP-кода WordPress запускает последнее событие shutdown
. На этом этапе работа WordPress закончена.
Поиск: CMS • Hook • Web-разработка • WordPress • Запрос • Процесс • Событие • Файл • Функция
Каталог wp-content — руководство для начинающих
Доброго времени суток!
Сегодня я бы хотел рассказать вам о самом главном каталоге по установке WordPress — wp-content.
Что такое wp-content? Это может быть ваша первая реакция в качестве новичка WordPress или если вы в основном работаете с WordPress через бэкэнд. Ведь среднестатистический владелец сайта большую часть времени проводит в личном кабинете.
Это имеет смысл. В конце концов, вы можете выполнять все важные задачи здесь и иметь возможность позаботиться обо всем сайте без необходимости редактировать файлы, перемещать данные или выполнять утомительные задачи.
Если вы пошли на один шаг дальше и установили WordPress самостоятельно, вы даже можете быть в курсе его отдельных частей: установка базы данных и самого WordPress.
, если вы не разработали или кем-то, вы должны контролировать все аспекты вашего сайта, вероятно, не очень хорошо знакомы с файловой структурой WordPress.
Одна из самых центральных его частей — папка wp-content. По этой причине, в этой статье я хочу подробно рассмотреть именно это.Мы поговорим о том, где находится wp-content, его назначение, что в нем содержится и что она позволяет делать.
Готовы окунуться в эту часть WordPress? Тогда поехали.
Как получить доступ к wp-content
Если вы не внесли существенных изменений в свою файловую структуру или не переименовали wp-content во что-то еще (подробнее об этом ниже), вы должны найти его в середине вашей установки WordPress.
Как и wp-admin и wp-includes, wp-content — это стандартная установка WordPress и будет создаваться автоматически при каждой установке CMS на сервере.
Таким образом, чтобы получить к нему доступ, все, что вам нужно сделать, это войти на свой FTP-сервер (например, через FileZilla). В зависимости от настроек вашего хоста вам может потребоваться перейти в другую папку, например, public_html, чтобы попасть на ваш сайт, однако, как только вы там найдете каталог wp-content.
Какова цель wp-content?
В более широком смысле, wp-content предоставляет предоставленный пользовательский контент. В основном все, что вы можете загрузить на свой сайт, находится здесь.Заметьте, это не относится к тому, что вы пишете. Эти вещи хранятся в базе данных WordPress.
Однако, если у вас есть база данных и папка wp-content, вы всегда сможете вернуть свой сайт обратно, даже если все остальное было потеряно.
На самом деле, если у вас естьовый веб-сайт (ничего важного, например, сайт местной разработки), вы можете попробовать эксперимент.
Сначала загрузите последнюю версию WordPress. Затем зайдите в главный каталог вашего тестового сайта.Здесь отметьте каждый файл и каталог, за исключением wp-content и wp-config.php (если он виден, вы также можете захотеть оставить файл .htaccess).
Затем удалите их. Вы меня правильно поняли, избавься от всей этой кучи. После того, как вы это сделаете, при попытке загрузить свой сайт в браузере, он будет выглядеть примерно так:
Чтобы исправить ситуацию, можно на свежую версию WordPress, которую вы только что загрузили. Распакуйте архив и получите доступ к каталогу.
Здесь, опять же, отметьте все файлы и папки, за исключением тех, которые остались в вашей тестовой установке WordPress. Затем перепишите их.
После завершения, если вы сделали все правильно, теперь вы должны перезагрузить свой сайт без проблем и увидеть его именно таким, как он был раньше.
файл wp-content на базе данных WordPress ничего особенного для вашего сайта не было потеряно. Аккуратно, правда?
Итак, что же тогда находится внутри wp-content?
Почему вышеуказанный эксперимент работает? Как уже указывается, wp-content содержит все пользовательские данные, которые не хранятся в базе данных.Это становится еще более очевидным, когда вы открываете каталог.
Стандартные каталоги в каталоге wp-content
Как правило, wp-content будет содержать как минимум три каталога: плагины (плагины), темы (темы) и загрузки (загрузки). Вот для чего они используются:
- Плагины. Как видно из названия, именно здесь WordPress хранит плагины. При установке плагина через меню в панели инструментов, он будет в конечном итоге здесь. И наоборот, можно также установить плагины вручную, извлекая и копируя их в этот каталог.Это сделает их доступными для активации в панели управления WordPress.
- Темы — аналогично папкам, но для тем. Установите тему из бэкэнда и вы найдете ее в этом каталоге. Или скопируйте темы в эту папку, чтобы сделать их доступными в бэкэнде. Это также папка, в которой вы будете тратить много времени на создание или изменение собственной темы или дочерней темы.
- Загрузка — здесь WordPress хранит все ваши медиафайлы, такие как изображения, видео или другие файлы, которые вы загружаете на свой сайт.По умолчанию медиафайлы упорядочены в подпапках, обозначая год и месяц их добавление на сайт. Однако также возможно отключить эту опцию, и все надежно в одном каталоге.
Итак, это стандартная настройка WordPress. Однако, особенно на более авторитетных сайтах, вы часто найдете дополнительные папки внутри каталога wp-content.
Другие общие папки
В зависимости от плагинов, присутствующих на сайте, вы также можете найти это внутри wp-content:
- Mu-plugins — это сокращение от обязательных плагинов.Плагины для обязательного использования поставляются некоторыми темами и имеют решающее значение для работы вашей темы и сайта. Если они, вы найдете их в этой папке.
- Языки (языки) — если ваш сайт не использует английский, но является одним из многих других языков, на которых размещены CMS, WordPress сохраняет языковые файлы в этом каталоге.
- Upgrade (обновление) — это временная папка, созданная WordPress при обновлении сайта до новой версии.
Помимо этого, другие плагины могут создать свои собственные каталоги внутри wp-content.Например, W3 Total Cache и WP Super Cache могут хранить здесь некоторые файлы.
Как упоминалось ранее, это имеет смысл, поскольку этот каталог не перезаписывается при обновлении WordPress. По этой причине любые данные, необходимо сохранить, лучше всего сохранить здесь.
Тем не менее, конечно, это также означает, что wp-content имеет жизненно важное значение для любого сайта WordPress и всегда должен быть включен в копию.
Когда использовать wp-content
Во время работы сайта WordPress, возможно, придется иметь дело с этой директорией.Помимо работы с темами, ниже приведены некоторые другие примеры, когда вам может потребоваться доступ к wp-content.
Исправление важных ошибок
Содержание wp-content иногда может быть причиной распространенных ошибок WordPress. В частности, те, вызваны плагинами и темами.
Когда это произойдет, ваш сайт станет недоступным, вам, возможно, придется получить доступ к их файлам, чтобы деактивировать некоторые из них вручную и вернуться в WordPress бэкэнд.
Переименовать wp-content
Несмотря на свою жизненно важную функцию, название wp-content не высечено на камне. Вполне возможно изменить его на что-то другое (как, кстати, с папками внутри wp-content).
Зачем вам это может понадобиться? Короче говоря, безопасность.
-формула WordPress открытым исходным кодом, любой желающий может сделать основную основу любого сайта. Стандартная настройка WordPress общеизвестна, что облегчает начало атаки.
По этой причине переименование wp-content является одним из шагов на пути к более безопасному сайту. Используйте эту статью, чтобы выяснить, как это реализовать. Для получения дополнительных советов о том, как сделать WordPress безопаснее, не пропустите мою статью на эту тему.
О wp-content в двух словах
Папка wp-content является неотъемлемой частью любой установки WordPress, поэтому вы найдете ее в главном каталоге сайта, построенного на платформе WordPress.
В нем размещается любой контент, предоставленный пользователями, который не сохраняется в базе данных. Это включает в себя плагины, темы и загруженные медиа. По этой причине, кроме базы данных, wp-content всегда должен быть частью резервной копии вашего сайта.
В этой кратком игре вы узнали, как получить доступ к wp-content и что вы можете найти в нем. Обладая знаниями, вы теперь немного знакомы с тем, как WordPress работает за кулисами.
Это, в свою очередь, дает вам больше контроля над вашим сайтом, и это никогда не может быть плохо.
У вас есть еще вопросы по wp-content? Если это так, пожалуйста, сообщите мне об этом в комментариях ниже.
До скорых встреч!
Навигация по алгоритму
Юрич:
Занимаюсь созданием сайтов на WordPress более 6 лет. Работал на нескольких веб-студиях, да и сейчас работаю. Иногда подрабатываю на фрилансе, как на нашем так и на зарубежном. Везде зарекомендовал себя очень хорошо. Если нужен сайт на WordPress, шаблон для сайта или лендинг — не стесняйтесь — пишите.Рад буду помочь!
Не забудьте подписаться на обновления:
Похожие записи
Оставить свой комментарий
.возвращает URL папки wp-content в WordPress
2.6.0 wp-includes / link-template.php
Прежде всего — что такое wp-content
?
Это такая папка (директория), которая находится прямо в директории установки WordPress:
Как видно по скриншоту, в wp-content
имеются некоторые другие папки, а именно:
-
плагины
— папка с установленными на сайте плагинами, -
темы
— с темами соответственно, -
upgrade
— нужна при обновлении движка, плагинов и тем, -
загрузок
— папка с медиафайлами сайта, в некоторых случаях может быть переназначена.
С wp-content
разобрались, теперь переходим собственно к функциям WordPress content_url () .
Она возвращает абсолютный URL к wp-content
на сайте.
Протокол соединения (то есть http: //
или https: //
) определяет функцию is_ssl ().
content_url ($ path = '')
- $ путь
- ( строка ) (параметр не обязателен) Какой-нибудь дополнительный путь относительно директории
wp-content
, например к папке тем (/ themes /
) или плагиновplugins
.Относительно слэшей не беспокоиться, функция автоматически удаляет левый слэш (если такой имеется, функция php
ltrim ()
) и затем его сама.Если в параметре передано не строковое значение (массив, объект и так далее), то он просто будет проигнорирован.
Примеры использования функций content_url ()
Несколько нехитрых примеров:
// в качестве примера возьму свой сайт https://misha.blog echo content_url (); // https: // миша.блог / wp-content /
$ additional_path = '/ themes /'; // путь к папке с темами $ url = content_url ($ additional_path); echo $ url; // https://misha.blog/wp-content/themes/
$ additional_path = 'темы /'; // тоже путь к папке с темами, но только без слэша в начале $ url = content_url ($ additional_path); echo $ url; // https://misha.blog/wp-content/themes/ - результат тот же
Вкратце про фильтр content_url
При помощи этого фильтра вы можете изменить возвращаемые значения всех функций content_url () на сайте.Для этого в functions.php
вставляем код примерно следующего содержимого:
function true_change_wp_content_url ($ url, $ path) { // как видите фильтр позволяет оперировать $ url (результат действия функции) и $ path (описано выше) // есть люди, которые полностью скрывают следы использования WordPress, в том числе переименовывают папку wp-content return str_replace ('wp-content', 'misha-content', $ url); } add_filter ('content_url', 'true_change_wp_content_url', 10, 2);
Миша
В последние годы я долго не знал, что мне делать с сайтом, миша.blog, ведь он практически не приносит профита, но недавно я осознал, что моя миссия — распространению распространения WordPress. Ведь WordPress — это лучший движок для разработки сайтов — как тех, кто готов использовать конструкцию для этой CMS, кто предпочитает решения без головы.
Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.
Если вам нужна помощь с вашим сайтом или может даже разработка с нуля на WordPress / WooCommerce — пишите.Я и моя команда сделаем вам всё на лучшем уровне.
.