Пакетные решения для WordPress и WooCommerce от топовых Российских авторов!
Рубрики в WordPress – это один из основных способ фильтрации различных типов записей и являются неотъемлемой частью любого WordPress сайта
Когда используется термин «тип записи», важно понимать, что их может быть много. Так, например: Записи (посты в блоге) — это тоже «тип записи», равно как и страницы. Количество возможных типов записей на вашем WordPress сайте неограниченно!
Благодаря рубрикам осуществляется группировка связанных записей. Рубрика, к которой по умолчанию привязываются все новые записи — «Без рубрики» (Uncategorized), но ее можно легко изменить в настройках.
Есть два основных способа добавления рубрик.
Указать рубрику можно при редактировании или создании новой записи. Если вы используете встроенный редактор блоков, то в настройках документа воспользуйтесь разделом «Рубрики»:
Добавленная, во время редактирования записи, рубрика –будет автоматически назначена.
Управление рубриками в WordPress, осуществляется через пункт меню «Рубрики», в панели администратора, который доступен для большинства различных типов записей. В нашем случае это сами записи (посты в блоге) и это второй способ добавления:
На этой странице вы увидите список уже добавленных рубрик, а также несколько пустых полей, позволяющих создать новую рубрику.
Если ваша тема или плагины не расширяют основной функционал WordPress, то для каждой рубрики будут доступны следующие настройки:
Новичкам будет полезно знать, что рубрики в WordPress являются таксономией и подчиняются всем основным принципам, которые заложены в это понятие!
Тут стоит подвести черту, закончив вводную часть и перейти к практике работы с рубриками. Так и сделаем. ?
Все программисты априори стремятся максимально оптимизировать свой рабочий процесс, избавиться от ручного труда и доработать, доступный по умолчанию функционал.
Давайте рассмотрим основные методы автоматизированной работы с данной таксономией.
$wplb_category = wp_insert_term(
// Название рубрики
'WordPress laboratory',
// Таксономия, в нашем случае это «category» ()
'category',
array(
// Часть постоянной ссылки
'slug' => 'wplb',
// Описание рубрики
'description' => 'Инструкции и руководства по WordPress для чайников',
// Родительская рубрика. В качестве переменной принимает ID рубрики, а 0 - не имеет родителя.
'parent' => 0
)
);
И как результат отработки скрипта, в переменную $wplb_category запишется массив:
Array
(
[term_id] => 129 // ID термина в таблице терминов.
[term_taxonomy_id] => 129 // ID пары (термин + таксономия).
)
Тут стоит пояснить, что в таблице базы данных WordPress wp_term_taxonomyкаждая строка почти всегда имеет одинаковое значение для двух столбцов term_taxonomy_id и term_id.
В связи с этим в массиве и отображаются идентичные значения. Но если вы добавите уже существующий термин в другую таксономию, например в метки, то значения элементов массива будут отличаться.
term_id и term_taxonomy_id будут новыми, так как это уникальная связка термина и таксономии и не важно, что название, описание или slug идентичны.
Для редактирования рубрик, нужно знать их атрибуты и это можно сделать, используя функцию get_term_by().
Как видно получить информацию о термине достаточно просто, найти его можно по name, id, slug, а так же ID (term_id) и term_taxonomy_id. Обратите внимание на разницу между «id» и «ID», в некоторых случаях вам это сильно поможет. ⚠️
Эта функция крайне полезна, когда нужно получить доступ к рубрикам в больших циклах.
Давайте редактировать рубрику, зная её id:
$status = wp_update_term( 129, 'category', array(
'name' => 'Новое название рубрики',
'slug' => 'wplb-slug',
'description' => 'Новое описание'
) );
А добавлять мы будем изображение к нашей категории, использовав функцию add_term_meta(). Вот мы и добиралась до хуков 🙂
add_action(
// Добавляем поле в область редактирования рубрики
'category_edit_form_fields',
function ( $wplb ) {
$wplb_image = get_term_meta( $wplb->term_id, 'wplb_image', true );
echo "
" . __( 'ID изображения' ) . "
";
}
);
add_action(
// Добавляем событие при сохранение
'edited_category',
function ( $term_id ) {
if ( isset( $_POST[ 'wplb_image' ] ) ){
update_term_meta( $term_id, 'wplb_image', $_POST[ 'wplb_image' ] );
}
}
);
Итак, после успешного добавления новых событий, на странице редактирования рубрики в WordPress появится новое поле:
Используя этот метод можно добавлять неограниченно количество метаданных к рубрикам.
add_shortcode( 'wplb_cat', 'wplb_shortcode' );
function wplb_shortcode( $atts ) {
$atts = shortcode_atts( array(
'cat' => '',
), $atts, 'wplb_cat' );
// Получаем ID изображения
$image_id = get_term_meta( 1, 'wplb_image', true );
// Используя ID получаем ссылку
$image_src = wp_get_attachment_image_src( $image_id, '', false );
$image_src[ 0 ] = 'https://wordpresslab.ru/wp-content/uploads/2020/08/polnoe-rukovodstvo-po-xmlrpc.php-v-wordpress-chto-eto-takoe-riski-dlya-bezopasnosti-i-kak-otklyuchit.gif';
// Находим рубрику по переменной шортокда
$category = get_category( $atts[ 'cat' ] );
// Получаем ссылку на архив рубрики
$category_link = get_category_link( $category->term_id );
// Подготавливаем код для вывода
$output = '
';
// Выводим
return $output;
}
[wplb_cat cat="129"]
.wplb_cat {
background-size: cover;
display: block;
text-align: center;
}
.wplb_cat .wplb_title {
color: #fff;
font-size: 1.5rem;
line-height:32px;
}
.wplb_cat span {
font-size: 12px;
letter-spacing: 1px;
color: #bbb;
}
.wplb_cat p {
color: #aaa;
font-size: 14px;
line-height: 20px;
}
.wplb_cat_a {
padding: 80px 100px;
display: block;
text-decoration: none;
background: rgba(0,0,0,.8);
border: 1px solid #fff;
}
@media only screen and (max-width: 768px) {
.wplb_cat_a{
padding: 20px 40px;
}
}
Всё очень просто, не так ли?
Проснувшись однажды утром после беспокойного сна, Грегор Замза обнаружил, что он у себя в постели превратился в страшное насекомое.
Добавим этот код в functions.php:
add_filter( 'category_description', 'wplb_description', 10, 2 );
function wplb_description( $description, $category ){
if ($category == '129'){
$description = ''.$description.'';
}
return $description;
}
Для категории с ID равным 10, описание обернуто тэгом:
Этот метод будет очень полезен, если описание просто огромное и его часть нужно визуально скрыть, используя jQuery.
Если у вас есть вопросы – спрашивайте в комментариях и мы обязательно вам ответим.
WordPress — это самая популярная платформа для создания сайтов в мире, по данным на 2025 год, почти 44% всех веб-сайтов в Интернете используют WordPress!
В этой статье мы пройдем через весь процесс пошагового создания сайта на WordPress и познакомимся с основными понятиями и терминами.
В итоге получится вот такой сайт. Да, весь демо-контент можно будет легко импортировать и сразу же редактировать под ваши нужды. Вы получите уже готовую структуру, которая значительно упростит работу над проектом.
Все элементы, от текста до изображений, можно будет настроить в несколько кликов, чтобы сайт стал уникальным и подходил для вашей компании.
Это стандартный сайт и его будет достаточно для презентации компании. Но, благодаря нашей WordPress теме можно сделать практически любой сайт или интернет-магазин!
Именно это нас сегодня и ждёт! Мы будем создавать сайт на WordPress с нуля и шаг за шагом пройдем весь процесс — от установки и настройки платформы до выбора темы, добавления контента и оптимизации. Это будет увлекательное путешествие, в результате которого у нас появится готовый сайт!
Пожалуй, многих из нас посещала мысль о том, чтобы создать свой сайт, вот только далеко не всем известно, что для этого требуется. Создание веб-сайта может стать крайне трудоемким и непростым процессом, тем более, если вы не располагаете определенными знаниями и умениями.
Однако волноваться не стоит, ведь, как говорится, не святые горшки лепят, так что надежда есть. Мы решили помочь новичкам с этим вопросом, рассказав все тонкости создания сайта на базе ВордПресс. Самое главное – это почти не потребует финансовых вложений!
До того, как мы займемся созданием сайта, ответим на вопросы, которые часто задают новички.
Для того чтобы создать свой веб-сайт на WP, потребуется не так уж много:
Дать сразу однозначный ответ на этот вопрос не получиться, ведь есть несколько факторов, которые на это влияют.
Среднестатистический бизнес-сайт может обойтись примерно от 5 тысяч рублей и до 30 тысяч долларов США в год.
Мы же советуем не прыгать сразу выше головы, и начать с минимума, и постепенно добавлять новые функции на свой веб-сайт по мере развития вашего бизнес-проекта. Так, вы избежите лишних трат и снизите до минимума возможные потери, а также сможете избежать перерасхода.
В этой статье мы поделимся с вами информацией о том, как создать веб-сайт, потратив при этом менее 10 тысяч рублей. Также мы расскажем о том, что делать дальше, и как увеличить в будущем количество возможностей.
Существует множество бесплатных и интуитивно простых и доходчивых редакторов контента, с помощью которых вы сможете произвести настройку сайта. Мы советуем воспользоваться WordPress в качестве базы для веб-сайта. В случае, если вы хотите создать блог, рекомендуем обратить внимание на другую нашу статью о создании блога на WordPress.
Наши сайты, в том числе WordPress лаборатория, созданы на базе WordPress. Давайте же узнаем где и как разместить сайт на WordPress.
Доменное имя – имя, по которому интернет-пользователи будут искать ваш сайт. Именно по этому адресу будет расположен ваш веб-сайт. Например, yandex.ru или wordpresslab.ru.
Первое, что нужно сделать это подобрать домен – это важный процесс, которому стоит уделить внимание в первую очередь. Только после этого следует добавить к доменному имени хостинг.
Затем, к выбранному домену добавить услугу хостинга.
Хостинг – это место, где хранятся все файлы вашего сайта. Без него ваш домен будет пустым, как адрес без дома.
Сердце тарифа — производительный процессор с частотой 2,2 ГГц, который обеспечивает быструю обработку запросов. Это делает его отличным выбором для работ с WordPress. Панель управления ISPmanager с интуитивным интерфейсом упрощает управление вашим хостингом.
Многие хостинг-провайдеры упрощают процесс установки WordPress и других популярных CMS, предлагая удобные инструменты в панели управления. Такие функции позволяют установить WordPress всего за пару кликов, без необходимости вручную загружать файлы или настраивать базу данных.
Вам нужно лишь выбрать CMS в списке, указать основные параметры (например, имя сайта и логин администратора), и система автоматически выполнит все настройки.
Это отличный вариант для новичков, которые хотят быстро запустить свой сайт.
Установка WordPress через ISPmanager — это удобно, так как хостинг-панель позволяет быстро справиться с задачей. Вот пошаговая инструкция:
Зайдите в панель управления ISPmanager, используя логин и пароль, предоставленные хостингом.
mysite.com
) и нажмите ОК.mysite.ru
или www
).mysite.ru
).Но это лишь начало, и пора переходить к следующему, не менее важному, шагу и узнать как наполнить сайт на WordPress!
То, каким на вид будет ваш сайт WP, напрямую зависит от подобранной темы.
У каждого веб-сайта WordPress имеется своя базовая тема, установленная по умолчанию. Вот только данная тема не особо привлекательна и навряд ли сможет привлечь посетителей. Но не волнуйтесь раньше времени, все поправимо.
Очевидно, что после того, как вы создали сайт или интернет-магазин на WordPress у вас голова идет кругом от обилия всевозможных вкладок и параметров настройки.
Настройка WordPress – это комплекс мер, предпринимаемых веб-мастером, для максимально возможной персонализации сайта.
В этой статье мы рассмотрим все базовые возможности и поясним, что делает каждая панель и как настроить её в соответствии с вашими потребностями.
Начинаем…
Первое, на что стоит обратить внимание – это страница «Общие», на которой нужно настроить основные элементы вашего сайта.
Всё достаточно просто, а так как у каждого поля есть описание, то опишем лишь несколько особенностей.
«Название сайта», очевидно, будет отображаться как часть заголовка страницы в браузере и в сниппете на страницах выдачи поисковых систем.
«Краткое описание» обычно отображается под названием вашего сайта и является кратким объяснением того, о чем ваш сайт. По умолчанию это поле имеет значение «Ещё один сайт на WordPress», тут же значения поля можно поменять или удалить совсем.
Эти настройки являются глобальными, но зачастую их перманентное отображение на каждой странице не приемлемо и как часть SEO оптимизации WordPress сайта мы рекомендуем поработать над процессом генерации сниппетов и дополнительно разобраться с плагином Yoast SEO.
Стоит так же обратить внимание на настройку форматов даты и времени, так как если разработчики вашей WordPress темы не криворукие тираннозавры ?, то именно эти значения будут использоваться в записях на страницах как временные метки.
Данная группа настроек имеет минимальное влияние на работоспособность сайта, но есть ряд особенностей, на которые стоит обратить внимания если вы решили настроить ваша WordPress сайт «от А до Я».
По умолчанию все публикуемые вами записи попадают в рубрику с название «Без рубрики» и постоянно, на этапе создания или редактирования записи, приходится выбирать нужную рубрику ручным методом. Благодаря этой настройки процесс можно хоть как-то оптимизировать.
Новичкам будет полезно разобраться в том, как работают рубрики в WordPress, а так же понять чем они отличаются от меток.
WordPress поддерживает несколько различных форматов записей, а разработчики шаблонов этим пользуются и вполне вероятно, что ваша тема не исключение и умеет по-разному отображать различные форматы. Благодаря настройки «Основной формат записей» можно задать режим отображения по умолчанию для всех постов, а при необходимости и на этапе создания или редактирования записи выбрать другой формат конкретно для этой записи.
http://rpc.pingomatic.com/
http://ping.blogs.yandex.ru/RPC2
http://blogsearch.google.ru/ping/RPC2
http://www.blogsearch.google.com/ping/RPC2
В WordPress, вкладка с настройками чтения является одной из самых основных.
Именно на этой вкладке администратор и выбирает, что показывать на главной странице сайта.
После установки WordPress на сервер на главной странице вашего сайта будут отображаться последние записи, а если такой формат главной странице не приемлем, то нужно создать две отдельные страницы: «Главная» и «Блог», а так же определить их именно на этой вкладке.
Важно понимать, что страница «Блог» не должна содержать никакого контента, так как он (контент) генерируется автоматически, на основе шаблонов страниц архивов в вашей теме.
Используя чекбокс «Видимость для поисковых систем», можно запретить поисковым системам индексировать ваш сайт, что очень удобно пока идет сам процесс разработки.
Комментарии являются неотъемлемой частью WordPress и на этой вкладки можно настроить их отображение.
Хорошо, что в WordPress все настройки уже описаны и нет нужды рассказывать про каждую опцию отдельно. Вам стоит лишь учесть, что даже если глобально вы разрешаете оставлять комментарии на каждой странице своего сайта, то при редактировании каждой страницы будет возможность запретить комментирование, конкретно для этой, отдельно взятой, страницы.
Стоит отметить, что WordPress поддерживает Gravatar, что очень удобно, так как зарегистрировавшись и загрузив своё изображение на этом сервисе, вы получите универсальный «Аватар». Один и тот же «Аватар» будет отображаться на всех WordPress сайтах, где вы оставили комментарий. То же самое касается и ваших пользователей.
WordPress создаёт миниатюры для каждого изображения, которое вы загружаете. Существует всего три вида стандартных миниатюр и на этой странице можно подогнать их размеры под свои нужды.
Стоит учесть, что в подавляющем большинстве случаев ваша WordPress тема имеет собственный набор генерируемых миниатюр и размеры, которые вы тут укажете не повлияют на работу сайта.
Разработчики шаблонов частою добавляют свои настройки миниатюр, но учтите, что новые, только что установленные размеры будут применяться только для вновь загруженных изображений.
Если вы хотите заново сгенерировать все миниатюры с новыми размерами, то используйте этот бесплатный плагин:
URL-адреса, также известные как «Постоянные ссылки» или «ЧПУ», являются ключевым компонентом в настройке WordPress, а также взаимодействия с пользователем.
Из описания к каждой опции и так понятно, какая структура будет у вашего сайта в зависимости от того, что вы выбрали. Стоит лишь отметить, что выбрать метод отображения желательно до начала процесса индексации сайта поисковиками, а в противном случае у вас будут сотни или даже тысячи битых ссылок (пользовательские типы постов) и различных перенаправлений. Это как минимум не приятно.
Несмотря на то, что в WordPress можно использовать «Кириллицу» в URL-е, мы не рекомендуем этого делать, а даже наоборот, все кириллические символы в URL-ах принудительно заменять «Латиницей», так как влияние вхождения ключевого запроса в URL – минимально!
Для автоматической замены кириллических символов в ярлыках на латинские используйте этот плагин:
WordPress создаёт миниатюры для каждого изображения, которое вы загружаете. Существует всего три вида стандартных миниатюр и на этой странице можно подогнать их размеры под свои нужды.
Стоит учесть, что в подавляющем большинстве случаев ваша WordPress тема имеет собственный набор генерируемых миниатюр и размеры, которые вы тут укажете не повлияют на работу сайта.
Разработчики шаблонов частою добавляют свои настройки миниатюр, но учтите, что новые, только что установленные размеры будут применяться только для вновь загруженных изображений.
Если вы хотите заново сгенерировать все миниатюры с новыми размерами, то используйте этот бесплатный плагин:
Отдельно хочется сказать про постраничную навигацию (пагинация). При навигации по архивам записей в URL подставляется значение /page/x, где x – это номер страницы.
Слово /page/, можно заменить, добавив следующий код в functions.php вашей темы (желательно дочерней).
add_action( 'init', function() {
$GLOBALS['wp_rewrite']->pagination_base = 'something';
});
В этом случае «/something/» будет отображаться вместо «/page/». Да и тут можно использовать кириллицу (например «/страница/»), но для этого нужно правильно кодировать символы, да к тому же, создавать дополнительные правила перезаписи для пагинации внутри рубрик. Мы не будем давать код, так как не советуем использовать кириллицу!
В 2006 году вышел федеральный закон №152 «О персональных данных», а эта страница с настройкой поможет ему соответствовать.
Согласно 152-ФЗ «О персональных данных», вы должны уведомить пользователя если собираете и храните его персональные данные и даже простая форма обратной связи попадает под действие этого закона.
Создать страницу с политикой конфиденциальности очень просто, достаточно использовать любой из типовых шаблонов или переписать уже созданную страницу (если вы её не удалили уже).
На этом базовая настройка WordPress заканчивается, но давайте посмотрим, что еще можно сделать.
Существует несколько дополнительных параметров, которое можно изменить, но они требуют базового знания PHP, а добавлять их мы будем в файл wp-config.php.
Отображение и запись логов ошибок очень полезно если вы разработчик. Добавив код, который вы видите ниже, сайт перейдет в режим отладки и запишет все ошибки в вашей теме или плагинах (если они есть) в файл логов:
define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );
// Изменяем интервал автоматического сохранения записей и страниц.
define('AUTOSAVE_INTERVAL', 240); // 240 секунд
// Интервал очистки корзины.
define( 'EMPTY_TRASH_DAYS', 7 ); // 7 дней
// Удалять страницы сразу же, а не хранить их в корзине.
define('EMPTY_TRASH_DAYS', 0 );
// Увеличиваем размер памяти доступный WordPress
define('WP_MEMORY_LIMIT', '256M'); //256 мегабайт
На этом всё, а то дальше совсем уже дебри и мы не сможем позиционировать эту статью, как статью «Для новичков»
Как видно, сама по себе настройка WordPress не так сложна, как могло показаться в самом начале. Достаточно зайти на нужную страницу и потыкать мышкой, а если у вас остались вопросы, то спрашивайте в комментариях.
Спасибо.
Как только мы в первый раз задумываемся о защите WordPress сайта, мы еще не осознаем до конца о том, что существует много различных шагов, которые мы можем предпринять в качестве превентивных мер по защите сайта, интернет-магазина или просто блога.
Последнее, что вам нужно, это проснуться однажды утром и обнаружить сайт в руинах. Сегодня мы собираемся поделиться множеством советов, стратегий и методов, которые вы сможете применить и тем самым улучшить безопасность WordPress сайта, да и просто спокойно спасть.
Первый вопрос, который вас наверняка интересует, безопасен ли сам посебе WordPress? В целом – Да. Тем не менее, владельцы WordPress сайтов часто сталкиваются со взломами, крашами и утечкой данных. Чаще всего это происходит из-за того, что пользователи продолжают следовать наихудшим методам обеспечения безопасности.
Использование устаревшего ядра WordPress, обнуленных (nulled) плагинов, не качественного системного администрирования, управления учетными данными и отсутствия необходимых знаний в Интернете и безопасности держат хакеров, так сказать, всегда в тонусе ?. Даже лидеры отрасли не всегда уделяют достаточно внимания, такой важной составляющей, как безопасность их WordPress сайта.
Согласно исследованию, проведенному компанией Sucuri за 2019 год, WordPress, как платформа, продолжает лидировать среди всех зараженных веб-сайтов, над которыми они работали (94%). А рост по сравнению с 2018 годом составил 4%. Ждем отчета за 2020, но принципиально картина не изменится.
WordPress, как CMS, используют более 35% всех веб-сайтов и неудивительно, что существует сотни тысяч комбинаций различных, как бесплатных, так и премиальных тем и плагинов и что уязвимости существуют и постоянно обнаруживаются.
Но к счастью, существует большое сообщество вокруг платформы WordPress, что гарантирует, что вновь обнаруженные уязвимости буду исправлены в кратчайшие сроки. По состоянию на 2020 год в состав WordPress команды по обеспечению безопасности вошли 50 экспертов, в том числе ведущие разработчики и исследователи в области цифровой защиты – около половины из них являются сотрудниками «Automattic».
Backdoor(бэкдор) – уязвимость, которая предоставляет злоумышленникам скрытые проходы, обходящие протоколы безопасности для получения доступа к веб-сайтам на WordPress не стандартным методом – wp-admin, SFTP, FTP и так далее. Использования этой уязвимости позволяют хакерам нанести ущерб серверам хостинга с последующем «межсайтовым» заражением – компрометация нескольких сайтов, размещенных на одном сервере.
В четвёртом квартале 2019 года, «Sucuri» сообщили, что бэкдоры по-прежнему являются одним из самых, часто используемых действий, предпринимаемых злоумышленниками для взлома, при этом почти 47% зараженных сайтов имеют ту ил иную форму бэкдора.
Бэкдоры часто маскируются и выглядят как легитимные файлы WordPress ядра или темы/плагина, дают доступ, как к файловой системе, так и базе данных, используя слабые места и ошибки в устаревших (вовремя не обновлённых) версиях. Провал TimThumb (PHP скрипт, который часто используется авторами тем для работы с изображениями), более известный как «Уязвимость нулевого дня» был ярким тому примером. Бэкдор использовал скрытые скрипты и устаревшее ПО, которое скомпрометировало миллионы сайтов, в уже далёком, 2013 году.
Профилактика и лечение этого типа уязвимости довольна проста. Вы можете выполнить проверку вашего WordPress сайт с помощью SiteCheck, который легко обнаружит этот и другие бэкдоры.
Двухфакторная аутентификация, блокировка IP-адресов, ограничение доступа администратора и предотвращение несанкционированного выполнения файлов PHP легко устраняет распространенные бэкдор-угроз, о которых мы поговорим подробнее ниже.
Эксплойт «Pharma Hack» используется, как метод для вставки вредоносного кода в устаревшие версии сайтов и плагинов для WordPress, а как следствие происходит подмена мета-тэгов. В SERP (результат выдачи поисковых систем) вместо вашего сайта, пользователи видят рекламу фармацевтических компаний. Уязвимость представляет собой скорее угрозу спама, чем традиционное вредоносное ПО, но дает поисковым системам достаточно оснований для блокировки сайта.
Движущий силой «Pharma Hack» являются бэкдоры в плагинах, темах и базах данных, которые можно очистить, следуя инструкциям из этого, старого, но полезного поста от Sucuri. Вы можете легко предупредить «Pharma Hacks», регулярно обновляя ядро, темы и плагины WordPress.
Brute-force – это, в первую очередь, попытка авторизации методом перебора. Используются скрипты перебирают пароли, а в случае успеха, злоумышленники получают доступ к вашему сайту. Ограничение кол-ва возможных попыток авторизации, двухэтапная аутентификация, логирование, использование белых и черных списков IP-адресов, а так же надежных паролей – являются одними из самых простых и высокоэффективных способов предотвращения такого рода атак.
Но, к сожалению, некоторые владельцы веб-сайтов WordPress не выполняют эти меры безопасности, тогда как хакеры легко могут скомпрометировать до 30 000 веб-сайтов за один день, используя атаки методом «Brute-force».
Перенаправления создаются благодаря бэкдорам и внедряют код в файлы сайта. На зараженных субъектах, сценарии для перанаправления, часто расположены в файле.htaccess , но также часто можно встретить как в ядре WordPress, так и в файлах темы (например в index.php). Действуя скрытно и направляя ваш трафик на вредоносные или рекламные сайты. Мы расскажем о некоторых способах их предотвращения в наших шагах по защите WordPress ниже.
XSS – метод, при котором скрипт внедряется в тело веб-сайт или приложения. Обычно это JS-скрипты которые работают на стороне браузера конечного пользователя без его ведома и без ведома владельца сайта. Целью обычно является получение файлов cookie или данных сеанса или, возможно, даже перезапись HTML на странице.
Одна из самых опасных уязвимостей, которая вызывает отказа в обслуживании (Denial of Service или просто DoS) – использует ошибки в коде, просто сжырая оперативную память ОС на которой работает сайт. Миллионы сайтов, изо дня в день, подвергаются атакам, что вызывает полную остановку сервера. В широком кругу такой метод называют – DDos (Distributed Denial-of-Service).
Даже актуальные версии WordPress не могут всесторонне защитить от крупных DDoS-атак. Но, по крайней мере, помогут вам не попасть под перекрестный огонь финансовых учреждений и владельцем бот-нетов.
21 октября 2016 года – это был день, когда в Европе и Северной Америке интернет просто отключился из-за DNS DDoS-атаки. Если интересно и в качестве «ликбеза» можно подробнее прочитать про это значимое событие более известно как Кибератака на Dyn.
? Ничего себе предисловие получилось. Пора двигаться дальше и полностью погрузиться в безопасность WordPress.
Согласно интернет-статистике, каждый день взламывается более 100 000 сайтов. Вот почему так важно уделить некоторое время и ознакомиться со следующими рекомендациями, приведенными ниже, о том, как лучше укрепить безопасность WordPress сайта.
Мы постараемся обновлять этот пост и актуализировать информацию, поскольку мир меняется, а WordPress не исключение.
Погружаемся ?
Когда речь заходит про общую сетевую безопасность или, как в нашем случае, организацию защиты WordPress сайта важно понимать, что одним из ключевых факторов здесь является безопасность на уровне сервера.
Выбрав ту или иную хостинг-компанию, вы, в первую очередь, доверяете им свой бизнес. Однозначно, мелочиться тут не стоит и если есть фин. возможность выбрать «VPS», а не «Shared». Обычно у каждой хостинг-компании есть линейка, так называемых, «Shared» тарифов, купив который за 200-300 рублей в месяц, ваш сайт будет работать на одном сервере, вместе с десятком других сайтов. Уровень угрозы множится кратно!
PHP – это основа любого сайта на WordPress. Трудно переоценить важность использования актуальной версии! Каждый основной релиз PHP полностью поддерживается разработчиками языка в течении следующих 2-х лет. Т.е есть гарантия, что в течении этого срока все ошибки будут исправлены. На данный момент все, кто работает с версией PHP 7.1 или ниже, больше не имеют поддержки в плане безопасности WordPress и подвержены угрозе.
И угадайте, что? Согласно официальной статистики WordPress и на момент написания этой статьи, более 24% WordPress сайтов используют PHP версии 5.6 и ниже, а количество пользователей которые используют PHP 7.2, которая активно не поддерживается (безопасность будет поддерживаться до 1 декабря 2020 года) и ниже составляет более 67%. Это страшно!
Да, разработчикам и компаниям требуется какое то время для отладки и обеспечения полной совместимости актуальной PHP версий с их кодом, но нет ни каких оправдания для запуска чего-либо без поддержки в плане безопасности. Не говоря уже об огромном влиянии на производительность, которое оказывают старые версии.
Не знаете, на какой версии PHP работает ваш сайт? Быстрый способ проверить это – Pingdom. Проверка начнется сразу после того как вы введете URL в строку поиска. По-завершении прокрутите вниз до блока «File requests». Нажмите на первый запрос и найдите параметр «X-Powered-By». Обычно это покажет версию PHP, которую использует ваш веб-сервер. Однако некоторые хостинг-компании удаляют этот заголовок по соображениям безопасности.
Обязательно обновите PHP на вашем сервере до версии 7.4+ как можно скорее!
Один из лучших и самых простых способов укрепить защиту вашего WordPress сайта – это использовать не стандартный подход к выбору логина и пароля. Посмотрите ежегодный список самых популярных паролей года. Вот в далёком 2014 году «Лаборатория Касперского» опубликовала список из 25 худших паролей.
А сейчас что? Вот данные 2020 года в материалах газета.ru и как видно особых изменений нет!
Основная функция wp_hash_password WordPress использует хеширования на основе MD5. Некоторые из лучших мер безопасности начинаются с основ. У Google есть несколько отличных рекомендаций по созданию надежного пароля.
Также важно использовать разные пароли для каждого сайта. Лучший способ их хранения – локально в зашифрованной БД на вашем компьютере. Даже если ваши данные надежно хранятся в облаке, они обычно более безопасны, поскольку вы не используете один и тот же пароль на нескольких сайтах. Это также убережет вас от стикеров на углах монитора. ?
А если говорить про WordPress, то самое плохое, что можно сделать – это использовать логин «admin» для авторизации. Если у вас так и есть то срочно примите меры. Создайте нового пользователя нажав на ссылку «Добавить нового» в меню «Пользователи» и установив ему роль «Администратор»!
Логин, так же можно сменить используя phpMyAdmin, но обязательно сделайте резервную копию вашей БД перед началом.
UPDATE wp_users SET user_login = 'UserThatCanDoThings' WHERE user_login = 'admin';
Еще один способ укрепить защиту вашего WordPress сайта – постоянно обновлять его. Это включает в себя ядро WordPress, плагины и темы (как из репозитория WordPress, так и премиум). Авторы обновляют свои детища не просто так, на всё есть причина. Часто обновления идут рука об руку с исправлением ошибок и улучшениями в плане общей безопасности.
К сожалению, миллионы компаний используют устаревшие версии плагинов, тем и ядра WordPress и все еще верят, что они на правильном пути к успеху. Они приводят причины отказа от обновления, такие как «их сайт сломается» или «модификации пропадут» или «плагин X не будет работать» или им якобы « не нужны новые функции».
А Фактически, сайты ломают в основном из-за ошибок в старых версиях WordPress. Модификация ядра WordPress изначально не рекомендуются командой WordPress и опытными разработчиками, которые понимают связанные с этим риски. А обновления WordPress в основном включают обязательные патчи безопасности и дополнительные функции, необходимые для запуска последних версий плагинов.
Знаете ли вы, что уязвимости в плагинах представляют это более 60% точек входа для хакеров? Обновляя свои плагины, вы можете лучше убедиться, что вы не одна из этих жертв. Если вы новичок, то советуем прочитать нашу инструкцию по работе с плагинами – конечно это базовые знания, но а вдруг?
Часто, безопасность в WordPress, как стратегия «скрытности» подходит как для интернет-магазина, так и для обычного сайта или блога. Если хакерам будет сложнее найти определенные бэкдоры, то у вас меньше шансов на атаку. Блокировка вашей админ-панели WordPress для входа в стистему – это хороший способ повысить вашу безопасность.
Если ни кто не лазил в код вашего сайта, то URL для авторизации выглядит так – domain.ru/wp-admin. Проблем состоит в том, что все знают об этом. Изменяя URL-адрес, вы можете сделать себя менее привлекательной мишенью и лучше защитить себя от атак методом «Brute-force». Это не решение всех проблем, это просто один маленький трюк, который определенно может помочь защитить вас.
Чтобы изменить URL-адрес входа в WordPress, мы рекомендуем использовать бесплатный плагин WPS Hide login. Плагин добаляет простое поле ввода нового URL. Просто не забудьте выбрать что-то уникальное, чего еще не будет в списке, который бот или скрипт может попытаться просканировать.
Хотя приведенное выше решение по изменению URL-адреса входа для администратора может помочь уменьшить большинство несанкционированных попыток входа в систему, ограничение количеству может также оказаться очень эффективным. Бесплатный плагин Cerber Limit Login Attempts – это отличный способ легко настроить продолжительность блокировки, попытки входа в систему, а также белые и черные списки IP-адресов.
Если вы ищете более элегантное решение для безопасности вашего WordPress сайта, то обратите внимание на плагин Login Lockdown и он совместим с WPS Hide, о котором мы писали ранее.
Еще один способ защиты входа в админку – это добавить HTTP-аутентификацию. Потребуется авторизоваться, прежде чем вы сможете получить доступ к стандартной странице входа в панель WordPress. Т.е. получается, что авторизоваться нужно будет дважды.
Этот метод не должен использоваться на интерент-магазинах или сайтах на которых организованы платные подписки. Но это может быть очень эффективным способом противодействия злоумышленникам.
home/user/.htpasswds/public_html/wp-admin/htpasswd/
AuthName "Admins Only"
AuthUserFile /home/somefolder/.htpasswds/public_html/wp-admin/htpasswd
AuthType basic
require user username
Order allow,deny
Allow from all
Satisfy any
На серверах Nginx, так же можно добавить базовой HTTP-аутентификации. Для этого просто следуйте официальному руководству, правда знания Английского языка тут будут не лишними ?
Независимо от того, насколько надежен ваш пароль, всегда есть риск, что кто-то его обнаружит. Двухфакторная аутентификация – это своего рода двухэтапный процесс, при котором вам потребуется не только связка логин/пароль, но и что-то дополнительное. Обычно это SMS, телефонный звонок или одноразовый пароль на основе времени (TOTP). В большинстве случаев это на 100% эффективно для предотвращения атак методом перебора на ваш сайт WordPress потому, что почти невозможно, чтобы у злоумышленника был и ваш пароль, и ваш смартфон одновременно.
Что касается плагинов двухфакторной авторизации для WordPress, то их достаточно много, но один самых простых и понятных – 2FAS Light – Google Authenticator. Достаточно установить приложение от Google для смартфонов на Andriod или на iOS, и следуя простейшей инструкции в плагине – отсканировать QR-код и подтвердить авторизацию. Всё, теперь даже если ваш пароль пойдет в свободное плавление, злоумышленникам потребуется доступ к смартфону чтобы авторизоваться на сайте.
Этот метод можно легко комбинировать со всеми, выше перечисленными, методами. Так что не только URL самой авторизации в панель WordPress является чем-то, что известно только вам, но теперь для входа требуется дополнительная аутентификация. ?
Пожалуй, одним из самых недооцененных методов повысить защиту сайта на WordPress является установка SSL-сертификата и запуск сайта по HTTPS. HTTPS (Hyper Text Transfer Protocol Secure) – это протокол, который позволяет вашему браузеру или веб-приложению безопасно подключаться к веб-сайту.
Давайте объясним несколько причин, почему HTTPS важен не только для сферы электронной коммерции.
Конечно, главной причиной для использования HTTPS является дополнительная безопасность, и да, это в первую очередь касается интернет-магазинов. Но подумайте, насколько сильно вы цените частную информацию ваших пользователей? При регистрации или авторизации на сайтах с HTTP все персональные данные передаются на сервер в виде простого текстового сообщения. HTTPS абсолютно необходим для поддержания безопасного соединения между веб-сайтом и браузером. Таким образом, вы сможете предотвратить доступ к персональным данным пользователей вашего веб-сайта хакеров или их посредников.
Итак, есть ли у вас блог, новостной сайт, агентство и т.д., вы всегда можете извлечь выгоду из HTTPS, поскольку это гарантирует, что ничто и никогда не передается в виде простого текста.
Google, еще в 2014 году, официально заявил, что HTTPS является фактором ранжирования. Хотя это всего лишь небольшой фактор ранжирования, большинство из вас, вероятно, воспользуются любым преимуществом, которое вы можете получить в результатах поисковой выдачи, чтобы обыграть своих конкурентов. C Яндексом дела обставят так же.
С июля 2018 года браузер Google Chrome версии 68 и выше начал помечать все сайты без HTTPS как «Незащищенные». Независимо от того, собирают они данные или нет. Вот с тех пол HTTPS стал важнее, чем когда-либо!
Google делает понятным для посетителей, что ваш сайт WordPress может не работать по защищенному соединению.
В след за Google этому примеру последовали и другие браузеры, в качеств примера, вот таким значком: Яндекс браузер — WordPress безопасность браузер от Яндекс помечает сайты без SSL сертификата, а при наведении на Yandex браузера — SSL пользователи видят, что сайт использует незащищенный протокол HTTP ?. Вот и думайте – будет ли хоть какое-то доверие вашему сайту.
Из-за протокола HTTP/2, часто те, кто работает с должным образом оптимизированными сайтами по HTTPS, могут даже увидеть улучшения скорости. HTTP/2 требует HTTPS. Повышение производительности происходит из-за множества причин, так например HTTP/2, способен поддерживать лучшее мультиплексирование, параллелизм, сжатие HPACK с кодированием Хаффмана, расширение ALPN.
А с TLS 1.3 HTTPS-соединения становятся еще быстрее.
Инструкцию по установке, равно как и сам SSL-сертификат, можно получить у вашего хостинг-провайдера, а после того как все установлено нужно будет добавить следующий код в wp-config.php:
define('FORCE_SSL_ADMIN', true);
После установки, файл wp-config.php: хранится в корневой папке. Но его можно переместить в каталог, который будет структурно выше каталога www.
Для этого, скопируйте содержимое файла wp-config.php: в новый файл. Затем в wp-config.php: нужно будет подключить ваш новый файл:.
КБ в WordPress – это как шифр, набор различных, случайно сгенерированных, символов которые используются при шифровании пользовательских cookie-файлах.
Когда вы устанавливаете WordPress, ключи генерируются автоматически. Однако, иногда их стоит обновлять.
На официальном сайте есть бесплатный инструмент, с помощью которого можно создать новые КБ и заменить их в файле wp-config.php:.
Обычно для файлов в корневом каталоге сайта WordPress устанавливается значение прав 644, что означает, что файлы доступны для чтения и записи для владельца файла и для чтения пользователями в группе, владеющей этим файлом, и для чтения всеми остальными. Согласно документации WordPress, разрешения для файла wp-config.php должны быть установлены 440 или 400, чтобы другие пользователи на сервере не могли его прочитать. Вы можете легко изменить права, используя FTP-клиент, ISP Manger или cPanel (зависит от типа вашего хостинга).
На некоторых хостинг-платформах разрешения могут отличаться, поскольку у пользователя, работающего с веб-сервером, нет прав на запись файлов. Если вы не уверены в этом, обратитесь к вашему хостинг-провайдеру.
В последние годы XML-RPC становится все более часто целью для атак методом перебора (Brute-force). Одна из скрытых возможностей XML-RPC заключается в том, что вы можете использовать метод system.multicall для выполнения нескольких процедур внутри одного запроса. Это очень полезно, поскольку позволяет приложению передавать несколько команд в одном HTTP-запросе. Но так же, именно это особенность и используется злоумышленниками.
Существует несколько плагинов WordPress, таких как Jetpack, которые используют XML-RPC, но большинству людей это не нужно, и может быть полезно просто отключить доступ к нему.
Не уверены, работает ли XML-RPC на вашем сайте? Воспользуйтесь бесплатных инструментом XML-RPC Validator от «Automattic».
Чтобы полностью отключить XML-RPC, вы можете воспользоваться плагинами из официального репозитория. Стоит отметить, что большинство плагинов для оптимизации производительности так же включают возможность отключения XML-RPC в своих бесплатных версиях. У нас есть отдельная статья про историю xmlrpc.php в WordPress и как отключить этот протокол.
Опять же, мы рекомендуем всегда обновлять ядро WordPress до актуальной версии.
Вы можете использовать следующий код, чтобы скрыть версию вашего WordPress. Просто добавьте его в файл functions.php вашей WordPress темы:
function wp_version_remove_version() {
return '';
}
add_filter('the_generator', 'wp_version_remove_version');
Внимание!
Редактирование исходного кода темы WordPress может привести к поломке сайта, если это сделано неправильно. Обратитесь к разработчикам если вы сомневаетесь в своих силах!
Вы можете проверить, какие заголовки в настоящее время работают на вашем сайте WordPress, запустив инспектор в Chrome браузере и посмотрев «Headers» во вкладке «Network» в первоначальном ответе вашего сайта.
Вы также можете просканировать веб-сайт с помощью бесплатного инструмента securityheaders.io. Вы всегда можете спросить своего хоста, могут ли они вам помочь с заголовками.
Очень важная особенность – многие плагины безопасности включают утилиту контрольной суммы. Это означает, что они проверяют вашу установку WordPress и ищут изменения в основных файлах, предоставленных WordPress.org (через API). Любые изменения или модификации этих файлов могут указывать на взлом. Вы также можете использовать WP-CLI для создания своей собственной контрольной суммы.
Есть несколько способов повысить безопасность вашей базы данных WordPress. Первый заключается в использовании умного имени базы данных. Изменение имени базы данных на более неясное помогает защитить ваш сайт, затрудняя хакерам идентификацию и доступ к деталям вашей базы данных.
Вторая рекомендация – использовать префикс таблицы базы данных, отличный от того, который WordPress рекомендует по умолчанию. По умолчанию WordPress использует wp_. Изменение префикса на что-то вроде m09_xp_ поможет значительно обезопасить WordPress БД.
Убедитесь, что ваш хост принимает меры предосторожности, такие как SFTP или SSH. SFTP или защищенный протокол передачи файлов (также известный как протокол передачи файлов SSH) – это сетевой протокол, используемый для передачи файлов. Это более безопасный метод по сравнению со стандартным FTP.
Также важно убедиться, что ваш домашний маршрутизатор настроен правильно. Если кто-то взломает вашу домашнюю сеть, он может получить доступ ко всем видам информации, в том числе, возможно, где хранится ваша важная информация о ваших сайтах WordPress.
И всегда будьте осторожны при входе на ваш сайт WordPress в публичных местах. Примите меры предосторожности, такие как проверка SSID сети перед нажатием кнопки «Подключиться». Вы также можете использовать стороннюю службу VPN для шифрования вашего интернет-трафика и скрытия вашего IP-адреса от хакеров.
Права доступа к файлам имеют решающее значение для повышения WordPress безопасности. Если ограничения слишком слабые, кто-то может легко получить доступ к вашему сайту и нанести ущерб. С другой стороны, если ваши ограничения слишком строгие, это может нарушить функциональность вашего сайта. Поэтому важно иметь правильные настройки.
Вот несколько типичных рекомендаций для прав доступа к файлам и папкам в WordPress:
Все файлы должны быть с правами 644 или 640. Исключение: wp-config.php должен быть 400 или 440, чтобы другие пользователи на сервере не могли его прочитать. Все каталоги должны обладать правами 755 или 750. Не нужно давать права 777, даже для директории /uploads/.
У многих сайтов на WordPress несколько пользователей и администраторов одновременно, что может усложнить безопасность WordPress. Плохая практика – предоставлять авторам или редакторам доступ администратора, но, к сожалению, это происходит постоянно. Важно дать пользователям правильные роли, чтобы они ничего не нарушали. По-этому может быть полезно просто отключить «Редактор тем» в WordPress.
Большинство из вас, вероятно, пользовались редактором. Вы идете, чтобы быстро отредактировать что-то в редакторе внешнего вида, и вдруг у вас остается белый экран смерти. Гораздо лучше отредактировать файл локально и загрузить его через FTP. И, конечно же, в наилучшей практике вы должны сначала тестировать подобные вещи на сайте разработки.
define('DISALLOW_FILE_EDIT', true);
Концепция хотлинкинга очень проста. Вы где-то находите изображение в Интернете и используете URL-адрес изображения прямо на своем сайте. Да, это изображение будет отображаться на вашем сайте, но оно будет загружаться напрямую с источника. По большому счету это расценивается как кража, так как отображение этой картинки на вашем сайте использует пропускную способность сайта донора. Это может показаться не таким уж большим делом, но это может привести к большим дополнительным расходам.
Ну а что касается безопасности вашего WordPress сайта – просто знайте, что если сегодня файл с расширением *.JPG, сегодня, действительно таковым является, то не факт, что завтра в него не зашьют вредоносный код. Так же может быть обратная ситуация когда *.PHP файл, сегодня показывает картинку, а завтра исполняет другой PHP код у вас на сайте.
Для предотвращения хотлинкинга в Apache просто добавьте следующий код в ваш файл .htaccess.
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?domain.ru [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://dropbox.com/placeholder.jpg [NC,R,L]
где, domain.ru – имя вашего домена, а placeholder.jpg – изображение которое будет выводиться по умолчанию вместо вставленных извне.
Чтобы предотвратить хотлинкинг на NGINX, просто добавьте следующий код в ваш файл конфигурации.
location ~ .(gif|png|jpe?g)$ {
valid_referers none blocked ~.google. ~.bing. ~.yahoo domain.ru *.domain.ru;
if ($invalid_referer) {
return 403;
}
}
Резервные копии – это то, что всем нужно делать в обязательном порядке. Большинство из приведенных выше рекомендаций являются мерами безопасности, которые вы можете предпринять, чтобы лучше защитить себя. Но независимо от того, насколько безопасен ваш сайт, он всё же может быть взломан, ну или просто сломаться.
Таким образом, создавайте и храните резервные копии на случай, если случится худшее. В рамках этого гайда мы не будет описывать процесс более развернуто, так как резервное копирование в WordPress достойно отдельной темы. Стоит лишь отметить, что создание бэкапов – это не мера борьбы со злоумышленниками, а мера безопасности в плане устранения последствий??
DDoS – это тип атаки DOS, когда несколько систем используются для нацеливания на одну, вызывая атаку типа «отказ в обслуживании». DDoS-атаки не являются чем-то новым – первый документированный случай относится к началу 2000 года. В отличие от тех, кто взламывает ваш сайт, эти типы атак обычно не наносит вреда вашему сайту, а просто «гасит» его на несколько часов или дней.
Что вы можете сделать, чтобы защитить себя? Одна из лучших рекомендаций – использовать авторитетную стороннюю службу безопасности, такую как Cloudflare или Sucuri. Если вы управляете бизнесом, имеет смысл инвестировать в их премиальные планы.
Продвинутая защита от DDoS-атак может быть использована для смягчения атак DDoS всех форм и размеров, включая те, которые нацелены на протоколы UDP и ICMP, а также SYN/ACK.
Как видите, существует множество способов повысить безопасность WordPress. Использование умных паролей, поддержание актуальности ядра и плагинов, а также выбор надежного хостинга – вот лишь некоторые из них, которые обеспечат безопасную работу вашего сайта на WordPress. Для многих из вас ваш сайт WordPress – это и ваш бизнес, и доход, поэтому важно потратить некоторое время и внедрить некоторые из рекомендаций по безопасности, упомянутых выше, раньше, чем позже.
Если у вас есть вопросы или просто хотите поделиться своим мнением, то оставляйте комментарии. Мира и спокойствия вашему сайте ✌️
Спасибо.
WordPress – прекрасная база для создания блога или сайта, но далеко не все знают как пользоваться этим благом с максимальной пользой. Начиная работать с WordPress, вы можете столкнуться с массой вопросов, тем более, если у вас нет профессиональной подготовки. Однако в этом нет ничего страшного, и начало работы с WordPress почти у всех проходит по аналогичному сценарию. По этой причине было решено создать полноценное руководство для тех, кого заинтересовало данное направление. Даже если у вас нет специальных знаний в этой сфере, вы без труда сможете создать свой персональный блог на WordPress.
Совершенно не важно сколько вам лет, ведь в инструкции все изложено просто и понятно.
Есть три вещи, которые вам нужны для создания блога на WordPress:
Готовы? Давайте начнем!
Наиболее часто допускаемой новичками ошибкой является выбор неправильного хостинга и платформы. Многие пользователи делают выбор в пользу WordPress и не спроста. Он является бесплатным сервисом, позволяющим веб-мастеру получить уйму возможностей:
Для большинства успешных блогов выбирают именно решение WordPress.org, в качестве CMS. Это касается не только персональных страничек, но и крупнейших новостных порталов. Бесплатным сервис остаётся, чтобы владельцы проектов могли сами разобраться со всем остальным, в том числе и настройками, вплоть до мельчайших деталей.
Но, тут важно понимать разницу между *.com и *.org, в связи с этим советуем ознакомиться со статьей – Что выбрать WordPress.com или WordPress.org.
Если мы обратимся к истории создания WordPress, то будет ясно, что изначально CMS позиционировалась исключительно как платформа для ведения блога, но это уже давно не так.
Вы может быть удивляетесь, почему WordPress бесплатный? В чем подвох?
Да нет никого подвоха. Бесплатно, потому что вы должны самостоятельно выполнить настройку и разместить ваш блог в интернете.
Другими словами, вам нужно доменное имя и веб-хостинг.
Доменное имя – по-другому, адрес, на котором располагается сайт. В качестве примера – yandex.ru или wordpresslab.ru.
Регистрация предполагает не покупку имени насовсем. Наоборот, оформляется аренда на определённый срок. Минимальное время для такого действия – 1 год. После приобретения пользователь становится администратором, получает адрес во временное владение. На домене создают сайты или почтовые платформы, выставляют на продажу, при необходимости – продлевают регистрацию. Но всеми доменами, в конечном счёте, владеет организация под названием ICANN. Это международная компания, которая отвечает за управление подобными ресурсами.
Веб-хостинг – другое дело. Здесь живут все файлы, связанные с сайтом. В нём тоже нуждается каждый проект без исключения.
Первое, что нужно сделать это подобрать домен.
Затем, к выбранному домену добавить услугу хостинга.
Оплатить выбранные услуги и после активации перейти к установке.
Тут ничего сложного – устанавливаем WordPress (можно выбрать как автоматическую установку, так и произвести ее вручную).
То, как будет выглядеть ваш блог WordPress, зависит от выбранной темы. Сразу, после установки ваш блог будет выглядеть так:
Маловероятно, что вам понравится стартовая тема, так как она не сможет заинтересовать посетителей.
Безусловно, настройка внешнего вида персонального блога станет одним из наиболее увлекательных и важных моментов создания блога на базе WordPress.
Есть масса готовых шаблонов, которыми вы можете воспользоваться: некоторые из них можно получить бесплатно, за некоторые же придется заплатить.
У нас есть отдельная подборка лучших шаблонов для блога WordPress.
Сменить тему просто, достаточно перейти на панель инструментов ВордПресс и нажать «Внешний вид», а затем – «Темы».
Жмем кнопку «Добавить».
На экране, который появится после этих действий, у вас будет возможность выбрать любую из предоставленных в официальном каталоге бесплатных тем WordPress (а их там более 8 тысяч). При выборе темы есть возможность сортировки тем по таким критериям, как: рекомендуемые, новые, популярные и прочие.
Важно! При предварительном просмотре темы стоит учитывать, что она может выглядеть иначе, чем на скриншоте, однако в этом нет ничего страшного, ведь позже у вас будет возможность настроить шаблон. Внимание стоит обратить на тип шрифта, цвет, дизайн и прочие элементы.
Определившись с темой, наведите на нее курсор мыши, после чего вы увидите кнопку «Установить». Жмем на нее и ждем завершение установки. Кнопка установки сменится надписью: «Активировать», жмем на нее для активации.
После установки темы, у вас появляется возможность ее настройки. Для этого переходим в графу меню «Внешний вид», а затем жмем «Настроить».
Если вы уже запутались или нужна помощь в выборе темы, ознакомьтесь с нашем крутым руководством – 9 вещей, которые следует учитывать при выборе темы для WordPress.
После того, как тема была выбрана, переходим к созданию своего первого поста в блоге.
На панели инструментов ВордПресс находим в меню графу «Записи», а затем «Добавить новую».
Вы окажетесь в области редактора, где можно создать свой первый пост. В WordPress используется редактор, основанный на блоках.
Каждый элемент – называется блок, что позволяет упорядочить статьи и сделать их более приятными для восприятия.
Чтобы ознакомиться с редактором, см. Наш учебник по редактору блоков WordPress.
После того, как вы окончите свой пост и будете довольны написанным, в правом верхнем углу жмете «Опубликовать», после чего он будет опубликован.
В редакторе вы также найдете несколько других разделов, среди которых «Метки» и «Рубрики». Их использование поможет вам упорядочить посты в блоге по разделам. У нас есть отличное описание различий между рубриками и метками, с которыми мы настоятельно рекомендуем вам ознакомиться.
После написания первого поста вам, скорее всего, захочется облагородить свой сайт с помощью таких полезных элементов, как галерея, форма подписки на рассылку, контактная форма и прочих. Для их добавления вам понадобятся плагины. Что же такое плагины для WordPress?
Плагины в WordPpress – это приложения, с помощью которых можно добавить на свой сайт новые функции (для этого не потребуется знание кода).
В каталоге плагинов WordPress, предоставляемых бесплатно, вы сможете найти более 57 тысяч плагинов. А значит для любого вашего каприза имеется плагин!
А вдогонку, вот руководство по установке плагинов на WordPress, если вы уж совсем новичок.
Давайте рассмотрим использование плагинов для добавления в ваш блог определенных важных функций
С помощью Google Analytics вы сможете видеть количество посетителей блога, откуда они пришли и чем занимаются на вашем сайте.
Правильным решением будет установка Google Analytics вместе с запуском блога, что позволит вам проследить рост вашего блога с течением времени.
Для начала стоит посетить сайт Google Analytics и осуществить вход в систему с помощью своего аккаунта Gmail. После того, как вход будет осуществлен, вы можете создать бесплатную учетную запись Google Analytics.
От вас потребуются ваши данные и адрес веб-сайта. Затем вы получите код отслеживания Google Analytics.
Запоминать его вам не придется, так как мы воспользуемся плагином, позволяющим автоматически загружать и добавлять данный код в ваш блог (в комплекте с настройкой правильного отслеживания WordPress).
Переключаемся в панель администратора WordPress, где устанавливаем и активируем плагин MonsterInsights. Это наиболее простой способ добавления на ваш сайт Google Analytics, причем версия плагина бесплатна.
После того, как плагин будет активирован, переходим на страничку Insights, а затем – «Настройки», где производим настройку плагина.
Для подключения Google Analytics к сайту WordPress жмем кнопку «ConnectMonsterInsights».
Чтобы завершить настройку, воспользуйтесь подсказками, которые будут появляться на экране. После того, как настройка будет завершена, вы сможете следить за аналитикой сайта на вкладке MonsterInsights прямо на панели инструментов WP.
Новички редко заморачиваются SEO оптимизацией при создании блога. Поисковая оптимизация, она же SEO, помогает пользователям отыскать в поисковых системах ваш блог. Для увеличения трафика, важно не откладывать оптимизацию своего блога.
Сначала нужно уделить время установке и активации плагина Yoast SEO. Данный плагин является прекрасным решением для ВордПресс, с помощью которого вы сможете оптимизировать блог.
После того, как плагин будет активирован, в меню появится новый пункт «SEO». После нажатия на него, вы будете перенаправлены на страничку настроек плагина. Настроить плагин будет несложно, так как у него имеется мастер быстрой настройки.
У плагина есть мастер быстрой настройки, который поможет вам пройти через настройку. Вы также можете настроить плагин самостоятельно следуя нашему руководству по Yoast SEO для ручной настройки.
Мы также рекомендуем вам следовать нашему полному пошаговому руководству по WordPress SEO, чтобы максимально оптимизировать ваш блог для поисковых систем.
Существует масса WordPress плагинов, которые предоставят вам новые возможности. Но, как правило, новички не знают, какие именно плагины им нужны. Но не стоит огорчаться, мы поделимся с вами информацией о том, на какие плагины стоит обратить внимание.
Вот наш экспертный выбор лучших плагинов WordPress, которые вы должны проверить.
Бэкап – Вам необходимо систематически создавать резервные копии блога, во избежание потери информации в случае сбоя. Обратите внимание на список лучших плагинов для этой цели, и это на самом деле крайне важно!
Безопасность – Немалое внимание стоит уделить безопасности WordPress.
Дизайн и настройка – Прекрасным решением станет плагин Elementor либо же стандартный редактор блоков, который поможет настроить дизайн домашней странички, создать целевые странички либо же даже пользовательских тем.
Существует несколько способов заработка денег с помощью вашего блога, и о некоторых из лучших мы расскажем.
Большинство блогеров зарабатывает на показе рекламы. Если цель ведения вашего блога – монетизация, то лучшим помощником станет Google AdSense.
Это огромная рекламная площадка для издателей и блогеров. Google выполняет роль посредника между рекламодателем и блогером, позволяя первым делать ставки на ключевые слова, которые соответствуют вашему контенту.
Участие в партнерке можно смело назвать вторым по популярности вариантом заработка среди блогеров. Тут все просто: вы советуете услуги / продукты, которые вам нравятся, своим посетителям, а в случае, если они их приобретают, вам начисляются комиссионные.
Важным моментом партнерского маркетинга является рекомендация качественных товаров, которыми вы на самом деле пользуетесь.
Нередко блогеры продают всякие штуки прямо из своего блога, и зарабатывают благодаря этому. Продавать можно все, что угодно: картины, музыку, цифровые товары, реальные продукты и прочее. Лучшим плагином электронной коммерции для WP является WooCommerce.
Три метода заработка, описанные выше, не являются единственными возможными вариантами. Блоги WordPress могут быть созданы для публикации обзоров, кулинарных рецептов, разговоров о моде и прочего. Выбрав определенное направление, вы сможете получить уникальные возможности для заработка.
Также можно использовать свой блог в качестве членского сайта, посредством которого будете предлагать премиум-контент или курсы по подписке.
Мы описали главные шаги создания блога на базе WordPress, но если у вас остались вопросы, не стесняйтесь задавать их в комментариях!
Если у вас есть вопросы – спрашивайте в комментариях и мы обязательно вам ответим.
Спасибо.
Достаточно часто сталкиваемся с ситуацией, когда что-то нарушает структуру постоянных ссылки на всех сайтах в сети WordPress (Multisite установка), например, когда происходит ошибка активацией плагина по всей сети.
На одном сайте из сети это достаточно легко исправить, вручную зайдя в Настройки → Постоянные ссылки, в результате чего будут сброшены и восстановлены правила перезаписи, но если в сети несколько десятков сайтов, то это уже не практично и нужен способ сделать это автоматически для всех сайтов.
Большинство попыток, которые мы видели, работали примерно так:
/*
* Это пример НЕПРАВИЛЬНОГО способа сбросить постоянные ссылки, не используйте его!
* Используйте лучший способ, описанный ниже.
*/
function wplb_wrong_flush_rewrite_rules_on_multisite() {
global $wp_rewrite;
$sites = wp_get_sites( array( 'limit' => false ) );
foreach ( $sites as $site_id ) {
switch_to_blog( $site_id );
$wp_rewrite->init();
flush_rewrite_rules(); // Нельзя так делать после вызова switch_to_blog().
restore_current_blog();
}
$wp_rewrite->init();
}
Функция отработает для основных типов записей POST и PAGE, но никак не повлияет на работу пользовательских типов записей CPT, а всё потому, что в работе функции switch_to_blog() есть несколько ограничений, и плагины – одна из таких вещей.
Если Вы используете мультисайт и у Вас есть пользовательские типы записей (CPT), которые регистрируются с помощью сторонних плагинов, то использование функции flush_rewrite_rules() бессмысленно!
Достаточно просто удалить значение опции rewrite_rules, так как она будет автоматически сгенерирована заново при следующей загрузке сайта.
$sites = get_sites( array(
'number' => 10000,
'public' => 1,
'deleted' => 0,
) );
foreach ( $sites as $site ) {
switch_to_blog( $site->blog_id );
delete_option( 'rewrite_rules' );
restore_current_blog();
}
На этом всё. Спасибо.
Cron – это стандартная утилита UNIX для выполнения запланированных задач в определенное время, дату или через интервал.
Однако WordPress Cron немного отличается от стандартной утилиты, и поэтому, прежде чем углубляться в действия и процесс, вам необходимо понять, что такое Cron в WordPress и как он будет работать на вашем сайте.
У WordPress есть своей Сron для работы с такими задачам, как проверка обновлений, планирование публикации, очистка корзины и многие другие. Все задания WordPress Cron обрабатываются через WP-Cron.
По умолчанию WordPress поддерживает следующие временные интервалы:
Можно добавить свой интервал, а для этого нужно отфильтровать cron_schedules. В качестве примера добавим тридцатисекундный интервал:
/******************************************
* Новый, тридцатисекундный интервал для WP-Cron
*****************************************/
// Добавляем фильтр
add_filter( 'cron_schedules', 'wplb_cron_30s' );
// Описываем функцию
function wplb_cron_30s( $schedules ) {
$schedules['30_seconds'] = array(
'interval' => 30,
'display' => esc_html__( 'Каждые 30 секунд' )
);
return $schedules;
}
Для мониторинга, отладки и управления запланированными действиями в WordPress можно использовать командную строку (WordPress CLI).
А для подавляющего большинства пользователей и разработчиков будет достаточно плагина:
Несмотря на то, что плагин позволяет создавать задания через интерфейс, мы его используем только для мониторинга и отладки.
Самый надежный и простой метод:
// Описываем функцию деактивации
function wplb_deactivate() {
// Убираем задачу 'wplb_cron'
wp_clear_scheduled_hook( 'wplb_cron' );
}
// Добавляем основное событие.
add_action('init', function() {
// Создаём событие нашего планировщика
add_action( 'wplb_cron', 'wplb_run_cron' );
// Регистрируем событе на случай дективации
register_deactivation_hook( __FILE__, 'wplb_deactivate' );
// Добавляем наше событие в WP-Cron
if (! wp_next_scheduled ( 'wplb_cron' )) {
wp_schedule_event( time(), '30_seconds', 'wplb_cron' );
}
});
// Описываем функцию для планировщика
function wplb_run_cron() {
// Функция будет выполняться 1 раз в тридцать секунд (Новый, тридцатисекундный интервал для WP-Cron мы добавили выше).
}
Если активирована тема, в которую вставлен этот код и не существует запланированного действия с названием wplb_cron, то добавим wplb_cron. Функция wplb_run_cron будет выполняться каждые 30 секунд. В случае если пользователь сменил тему, то из планировщика убираем событие wplb_cron.
Если подумать, то всё достаточно просто, а если вы установили плагин WP Control, то вы увидите:
В WordPress так же можно добавить событие, которое сработает всего один раз.
// Создаём событие wplb_event
add_action( 'wplb_event', 'wplb_in_an_hour', 10, 3 );
// Описываем функцию для событие wplb_event
function wplb_in_an_hour( $arg1, $arg2, $arg3 ) {
// Описание функции
}
// Добавляем событие wplb_event в планировщик (запустится через 1800 секунд от текущего времяни)
wp_schedule_single_event( time() + 1800, 'wplb_event', array( $arg1, $arg2, $arg3 ) );
Сами по себе одноразовые крон задачи используются редко, но стоит уточнить, что их очень удобно использовать в заданиях, запускаемых с определенным интервалом.
Вводные данные:
Задача:
Автоматизировать процесс.
Решение:
Использование WP-Cron, как ежедневное запланированное задание, которое в свою очередь создавало несколько одноразовых заданий (запускались по очереди) в зависимости от объема новых, полученных через API, данных.
Мы постарались изложить всю информацию максимально доступно, но если у вас все равно остались вопросы, вы можете смело их нам задать, и мы обязательно поможем!
Спасибо.
Использование «Ajax» является одним из самых распространенных методов создания и работы с пользовательскими интерфейсами.
Применение этой технологии позволяет выполнять незаметную фоновую обработку данных (без перезагрузки страницы), что значительно улучшает процесс взаимодействия пользователей с сайтом.
В качестве примера, работу Ajax в WordPress можно наблюдать в панели администратора если открыть консоль браузера и перейти во вкладку «Network», но, как и везде, в WordPress есть свои особенности работы с асинхронным JavaScript и в этой статье мы на их рассмотрим.
Осваивать работу Ajax в WordPress мы будем на реальном примере, а именно будем создавать «форму регистрации и авторизации пользователей», для вашего WordPress сайта.
Благодаря рубрикам осуществляется группировка связанных записей. Рубрика, к которой по умолчанию привязываются все новые записи — «Без рубрики» (Uncategorized), но ее можно легко изменить в настройках.
Формы, которые вы видите ниже, будут результатом нашей совместной работы. Они полностью рабочие, пробуйте.
Так как это обучающие пособие, то все пользователи, которые зарегистрировались через эту форму, периодически удаляются!
Предполагается, что читатель уже обладает базовыми навыками работы с HTML, CSS, PHP и jQuery, так как мы не будем посимвольно разжёвывать каждый кусок кода.
Начать погружение в работу Ajax на WordPress сайтах следует с изучения теории, этим и займёмся.
Начиная с бородатой версии ядра 2.8, WordPress позволяем создавать собственные события, используя встроенный Ajax, но стоит понимать, что есть ряд правил, которым нужно следовать:
Как видно, свод правил достаточно коротки и никаких критичных ограничений не несет.
Давайте уже переходить к практике.
Первое, что нам предстоит сделать – это создать HTML разметку форм для регистрации/авторизации и стилизовать их. Процесс этот описывать не будем, а сам код можно взять здесь.
Стоит учесть, что таблица стилей вашей темы может частично перекрыть стили форм, с которыми мы работаем, но в целом должно получиться примерно так:
Для начала, советуем не менять HTML разметку, которая используется в этом уроке, а просто скопировать и вставить в тело страницы, используя элемент HTML в редакторе блоков.
Скрипты в этом уроке будет опираться именно на эту разметку.
Вставляем этот код в functions.php вашей темы (желательно дочерней):
// Добавляем событие в процесс инициализации JS скриптов
add_action( 'wp_enqueue_scripts', 'wplb_ajax_enqueue' );
//Описываем событие
function wplb_ajax_enqueue() {
// Подключаем файл js скрипта.
wp_enqueue_script(
'wplb-ajax', // Имя
get_stylesheet_directory_uri() . '/scripts/wplb-ajax.js', // Путь до JS файла.
array('jquery') // В массив jquery.
);
// Используем функцию wp_localize_script для передачи переменных в JS скрипт.
wp_localize_script(
'wplb-ajax', // Куда будем передавать
'wplb_ajax_obj', // Название массива, который будет содержать передаваемые данные
array(
'ajaxurl' => admin_url( 'admin-ajax.php' ), // Элемент массива, содержащий путь к admin-ajax.php
'nonce' => wp_create_nonce('wplb-nonce') // Создаем nonce
)
);
}
Давайте подробнее рассмотрим это кусок кода:
Первое, что мы делаем, хукаем событие инициализации скриптов для регистрации собственного *.js.
Обратите внимание, что мы используем функцию get_stylesheet_directory_uri(), для того, чтобы указать путь к новому JS файлу так как работаем в дочерней теме. Если вы работаете в родительской теме, то используйте функцию get_template_directory_uri().
Благодаря функции wp_localize_script(), а в файле /scripts/wplb-ajax.js, будет доступен объект с данными которые мы отправляем из PHP. Имейте ввиду, что таким методом можно передавать любые, как статичные данные из БД, так и результаты отработки циклов ☝️
Для начала, содержимое файла wplb-ajax.js, который должен находится в папке wp-content/моя_тема/scripts будет таким:
jQuery(document).ready(function ($) {
'use strict';
'esversion: 6';
// Функция отправки форм.
$('.wplb_holder').on('submit', 'form', function (ev) {
// Определяем какую форму пользователь заполнил.
let this_is = $(this);
// Определяем кнопку.
let button = $(this).find('input[type="submit"]');
// Определяем тип формы.
let type = $(this).attr('data-type');
// Отправляем запрос Ajax в WordPress.
$.ajax({
// Путь к файлу admin-ajax.php.
url: wplb_ajax_obj.ajaxurl,
// Создаем объект, содержащий параметры отправки.
data: {
// Событие к которому будем обращаться.
'action': 'wplb_ajax_request',
// Передаём тип формы.
'type': type,
// Передаём значения формы.
'content': $(this).serialize(),
// Используем nonce для защиты.
'security': wplb_ajax_obj.nonce,
// Перед отправкой Ajax в WordPress.
beforeSend: function () {}
}
})
.always(function() {
// Выполнять после каждого Ajax запроса.
})
.done(function(data) {
// Функция для работы с обработанными данными.
})
.fail(function(errorThrown) {
// Читать ошибки будем в консоли если что-то пойдет не по плану.
console.log(errorThrown);
});
// Предотвращаем действие, заложенное в форму по умолчанию.
ev.preventDefault();
});
});
Давайте проясним некоторые моменты:
Обратите внимание, что используются две директивы:
Вы наверное заметили, что используется функция .on(), вот так:
$('.wplb_holder').on('submit', 'form', function (event) {});
Вместо простой и привычной:
$( "form" ).submit(function( event ) {});
Дело в том, что функция .on() позволяет обращаться к динамически добавленным в DOM (объектная модель документа) элементам.
Если представить, что в результате какого-то события на странице появился новый блочный элемент с ссылкой:
Если по ссылке нужно будет кликнуть, то:
// Так работать не будет:
$('#wplb_read_more').click(function(event){});
// Так будет:
$('#wplb_new_element').on('click', '#wplb_read_more', function (event) {});
Конструкция самой $.ajax({}) функции достаточно проста, а для каждой строки мы добавили комментарии. Но стоит обратить внимание, что мы используем объект <wplb_ajax_obj, который создали при инициализации самого скрипта.
Событие, которое будет обрабатывать Ajax в WordPress ядре, в нашем случае называется wplb_ajax_request.
Давайте его создадим.
Возвращаемся в functions.php добавляем следующий код:
// Создаём событие обработки Ajax в WordPress теме.
add_action( 'wp_ajax_nopriv_wplb_ajax_request', 'wplb_ajax_request' );
//add_action( 'wp_ajax_wplb_ajax_request', 'wplb_ajax_request' );
// Описываем саму функцию.
function wplb_ajax_request() {
// Перемененная $_REQUEST содержит все данные заполненных форм.
if ( isset( $_REQUEST ) ) {
// Проверяем nonce, а в случае если что-то пошло не так, то прерываем выполнение функции.
if ( !wp_verify_nonce( $_REQUEST[ 'security' ], 'wplb-nonce' ) ) {
wp_die( 'Базовая защита не пройдена' );
}
// Введём переменную, которая будет содержать массив с результатом отработки события.
$result = array( 'status' => false, 'content' => false );
// Создаём массив который содержит значения полей заполненной формы.
parse_str( $_REQUEST[ 'content' ], $creds );
switch ( $_REQUEST[ 'type' ] ) {
case 'registration':
/**
* Заполнена форма регистрации.
*/
break;
case 'authorization':
/**
* Заполнена форма авторизации.
*/
break;
}
// Конвертируем массив с результатами обработки и передаем его обратно как строку в JSON формате.
echo json_encode( $result );
}
// Заканчиваем работу Ajax.
wp_die();
}
Для создания самого события используется хук «wp_ajax_action_name», где action_name это название события, в нашем случае wplb_ajax_request, а вот префикса может быть два:
Получается, что если нам нужен Ajax который будет работать как для гостей, так и для авторизированных пользователей WordPress сайта, то нужно создать оба события одновременно!?
Мы так же ввели переменную $result, которая будет содержать массив с результатами обработки, а сам массив конвертируем в строку JSON формата и отправляем обратно в браузер.
Пора начинать работать с пользователями.
При отправки формы, благодаря функции serialize(), в глобальную переменную $_REQUEST и как элемент массива, запишутся все данные заполненной формы.
Начнем с формы регистрации, а значит там где мы используем оператор switch нас интересует случай «registration».
Вставляем следующий код:
case 'registration':
/**
* Заполнена форма регистрации.
*/
// Пробуем создать объект с пользователем.
$user = username_exists( $creds[ 'wplb_login' ] );
// Проверяем, а может быть уже есть такой пользователь
if ( !$user && false == email_exists( $creds[ 'wplb_email' ] ) ) {
// Пользователя не существует.
// Создаём массив с данными для регистрации нового пользователя.
$user_data = array(
'user_login' => $creds[ 'wplb_login' ], // Логин.
'user_email' => $creds[ 'wplb_email' ], // Email.
'user_pass' => $creds[ 'wplb_password' ], // Пароль.
'display_name' => $creds[ 'wplb_login' ], // Отображаемое имя.
'role' => 'subscriber' // Роль.
);
// Добавляем пользователя в базу данных.
$user = wp_insert_user( $user_data );
// Проверка на ошибки.
if ( is_wp_error( $user ) ) {
// Невозможно создать пользователя, записываем результат в массив.
$result[ 'status' ] = false;
$result[ 'content' ] = $user->get_error_message();
} else {
// Создаём массив для авторизации.
$creds = array(
'user_login' => $creds[ 'wplb_login' ], // Логин пользователя.
'user_password' => $creds[ 'wplb_password' ], // Пароль пользователя.
'remember' => true // Запоминаем.
);
// Пробуем авторизовать пользователя.
$signon = wp_signon( $creds, false );
if ( is_wp_error( $signon ) ) {
// Авторизовать не получилось.
$result[ 'status' ] = false;
$result[ 'content' ] = $signon->get_error_message();
} else {
// Авторизация успешна, устанавливаем необходимые куки.
wp_clear_auth_cookie();
clean_user_cache( $signon->ID );
wp_set_current_user( $signon->ID );
wp_set_auth_cookie( $signon->ID );
update_user_caches( $signon );
// Записываем результаты в массив.
$result[ 'status' ] = true;
}
}
} else {
// Такой пользователь уже существует, регистрация не возможна, записываем данные в массив.
$result[ 'status' ] = false;
$result[ 'content' ] = esc_html__( 'Пользователь уже существует', 'wplb_ajax_lesson' );
}
break;
Всё достаточно просто. При благоприятном стечении обстоятельств пользователь будет зарегистрирован и авторизован, а в противном случае, благодаря встроенному в WordPress обработчику ошибок, мы будем знать, что именно пошло не так.
Проще говоря, результат обработки вернется в файл wplb-ajax.js в 100% случаях.
Давайте посмотрим, что можно сделать с полученным назад данными.
Мы еж описали процесс авторизации в блоке относящемся к регистрации, а так плодить запросы Ajax в WordPress мы не собираемся, то просто скопируем кусочек кода и вставим его в нужное место:
case 'authorization':
/**
* Заполнена форма авторизации.
*/
// Создаём массив для авторизации
$creds = array(
'user_login' => $creds[ 'wplb_login' ], // Логин пользователя
'user_password' => $creds[ 'wplb_password' ], // Пароль пользователя
'remember' => true // Запоминаем
);
// Пробуем авторизовать пользователя.
$signon = wp_signon( $creds, false );
if ( is_wp_error( $signon ) ) {
// Авторизовать не получилось
$result[ 'status' ] = false;
$result[ 'content' ] = $signon->get_error_message();
} else {
// Авторизация успешна, устанавливаем необходимые куки.
wp_clear_auth_cookie();
clean_user_cache( $signon->ID );
wp_set_current_user( $signon->ID );
wp_set_auth_cookie( $signon->ID );
update_user_caches( $signon );
// Записываем результаты в массив.
$result[ 'status' ] = true;
}
break;
Дублирование процедур в коде – это очень плохое решение и вам стоит создать отдельную функцию, описывающую процесс авторизации и вызывать её в нужных местах.
На этом процесс обработки входных данных закачивается, давайте вернёмся в JavaScript файл и поработаем с данными которые вернуться.
Прежде чем, что-то сделать с данными которые мы обработали и вернули обратно, давайте посмотрим что можно сделать перед изначальной их отправкой.
Описываем функцию beforeSend: function () {}):
// Перед отправкой запроса Ajax в WordPress ядро.
beforeSend: function () {
// Спрячем кнопку и покажем пользователю, что скрипт работает.
button.hide();
this_is.find('.wplb_alert').hide();
this_is.find('.wplb_loading').show();
}
Всё просто, мы спрятали кнопку отправки формы и показали всевдоспинер, для визуализации процесса.
Теперь опишем процесс визуализации вернувшихся данных:
.done(function(data) {
// Функция для работы с обработанными данными.
// Переменная $reslut будет хранить результат обработки.
let $result = JSON.parse(data);
// Проверяем какой статус пришел
if($result.status == false){
//Пришла ошибка, скрываем не нужные элементы и возвращаем кнопку.
this_is.find('.wplb_alert').addClass('wplb_alert_error').html($result.content).show();
button.show();
}else{
// Пользователь авторизован, покажем ему сообщение.
$('.wplb_holder').addClass('wplb_alert wplb_signon').html('Добро пожаловать!
Ajax выполнил свою работу, вы в системе! Перезагрузите страницу и убедитесь.');
}
})
Так как код очень простой и содержит комментарии, то описывать его смысла нет.
Как видите использовать Ajax в WordPress очень просто, но учтите, что в рамках этого урока мы опустили несколько важных моментов и предлагаем вам разобраться с ними самостоятельно:
К этому уроку мы подготовили все исходники, а форму обернули в шорткод для более удобного использования. Скачать можно тут.
Инструкция:
Вставьте этот шорткод в тело страницы, любым удобным методом, удалив лишние пробелы:
[ wplb_ajax_example ]
Если у вас есть вопросы спрашивайте в комментариях.
Спасибо.
Протокол «XML-RPC» был разработан для стандартизации взаимодействия между различными системами, что означает, что приложения вне WordPress (например, другие платформы для ведения блогов и клиенты) могут взаимодействовать с ядром вашего WordPress сайта.
WordPress использует «XML-RPC» с момента его создания и он проделал очень полезную работу. Без него WordPress был бы изолирован от остального Интернета.
Однако у xmlrpc.php есть свои недостатки. Он способен открыть уязвимости вашего сайта WordPress, и теперь его заменил WordPress REST API, который намного лучше работает как связь между WordPress и другими приложениями.
В этом посте мы объясним, что такое xmlrpc.php в WordPress, почему
желательно бы его отключить, и поможем определить, работает ли он на вашем сайте.
Поехали…
Итак, как вы уже знаете, «XML-RPC» – это протокол, который обеспечивает связь между WordPress и другими системами. Добились этого путем стандартизации этих коммуникаций с использованием «HTTP» в качестве транспортного механизма и «XML» в качестве механизма кодирования.
XML-RPC появился гораздо раньше чем сам WordPress: он присутствовал в программном обеспечении для ведения блогов «b2», одна из ветвей которого использовалась для создания WordPress в уже далёком 2003 году. Частично, код ПО «b2» хранится в файле с именем xmlrpc.php в корневом каталоге сайта. Да, он все еще существует, хотя «XML-RPC» в значительной степени устарел.
В ранних версиях WordPress «XML-RPC» был отключен по умолчанию. Но начиная с версии 3.5 он вернулся. ? Сделано это было для того, чтобы мобильное приложение WordPress (iOS и Android) могло взаимодействовать с вашим WordPress сайтом.
Если вы использовали мобильное приложение до версии 3.5, вы, возможно, помните, что вам нужно было отдельно включить «XML-RPC» на сайте, чтобы приложение могло публиковать контент. Это произошло потому, что в приложении не взаимодействовало напрямую с WordPress, а существовало отдельное ПО, связывающееся с вашим сайтом с помощью xmlrpc.php.
Стоит уточнить, что «XML-RPC» взаимодействовал не только с приложением, он также использовался для обеспечения связи между WordPress и другими платформами для ведения блогов, он подключал, так называемые «Pingbacks» (обратные ссылки), а также работал с плагином Jetpack.
Но с приходом «REST API» и интеграцией его в ядро WordPress, файл xmlrpc.php больше не используется для этого типа взаимодействий. Сейчас «REST API» используется для связи с мобильным приложением WordPress, с настольными клиентами, с другими платформами для ведения блогов, с WordPress.com (для плагина Jetpack) и с другими системами. Диапазон систем, с которыми может взаимодействовать «REST API», намного больше, чем в xmlrpc.php. Кроме того, «REST API» даёт гораздо больше гибкости для разработчиков.
Опираясь на то, что «REST API» заменил «XML-RPC», вам следует отключить xmlrpc.php на своем WordPress сайте. Давайте разбираться почему это нужно сделать.
Основная причина, по которой вы должны отключить xmlrpc.php на своем WordPress сайте, заключается в том, что он может открыть уязвимости и стать целью атак.
Теперь, когда «XML-RPC» больше не нужен для связи вашего сайта со сторонними ПО, нет причин держать протокол открытым. Было бы разумно сделать ваш сайт более безопасным, не так ли?
Причина этого в том, что одной из ключевых особенностей WordPress всегда будет обратная совместимость. Если вы грамотно управляете своим сайтом, то вы знаете, что крайне важно поддерживать ядро WordPress в актуальном состоянии, а также любые плагины или темы.
Но всегда найдутся веб-мастера, которые не хотят или не могут периодически все обновлять, а если они используют версию, предшествующую появленению «REST API», им требуется доступ к xmlrpc.php.
Давайте рассмотрим конкретные уязвимости более подробно.
Одной из функций, реализованных в xmlrpc.php, были пингбеки и трекбэки. Это уведомления, которые появляются в комментариях на вашем сайте, когда другой блог или сайт ссылается на ваш контент.
Эта связь стала возможной благодаря протоколу «XML-RPC», но ее заменил «REST API» (как вы уже усвоили).
Если на вашем сайте включен «XML-RPC», злоумышленних потенциально может организовать DDoS-атаку на сайт, используя xmlrpc.php для отправки большого количества пингбеков на ваш сайт за короткое время. Это может перегрузить ваш сервер и вывести его из строя.
Каждый раз, когда xmlrpc.php делает запрос, он отправляет имя пользователя и пароль для аутентификации. Это представляет собой серьезную угрозу безопасности а вот «REST API» этого не делает. Фактически, «REST API» использует метод «OAuth», который отправляет токены для аутентификации вместо имен пользователей или паролей.
Поскольку xmlrpc.php отправляет информацию аутентификации с каждым запросом, злоумышленники могут использовать ее, чтобы попытаться получить доступ к сайту. Подобная атака может позволить им вставить контент, удалить код или повредить базу данных.
Если злоумышленник отправляет на ваш сайт большое количество запросов, в каждом из которых содержится пара с именем пользователя и паролем, то есть вероятность, что в конечном итоге он ударит по правильному, получит доступ к сайту.
Вот почему, если вы используете последнюю версию WordPress, которая использует «REST API» для связи с внешними системами, вам следует отключить xmlrpc.php. В нём нет необходимости, а он может сделать ваш сайт уязвимым. ☠️
Первое, что вам нужно сделать, это определить, активен ли xmlrpc.php на вашем сайте WordPress.
Это непросто проверки наличия файла. Файл является частью каждой установки WordPress и будет присутствовать, даже если «XML-RPC» отключен.
Всегда делайте резервную копию своего сайта, прежде чем что-либо удалять. В нашем случае не удаляйте просто файл xmlrpc.php, потому что он сломает ваш сайт.
Чтобы проверить, активен ли xmlrpc.php на вашем WordPress сайте, используйте сервис проверки. Этот сервис автоматически проверит ваш сайт и сообщит, активен ли протокол или нет.
Вот результат, который вы получите если проверите wordpresslab.ru через этот сервис. «XML-RPC» отключен!
Итак, если вы запустите проверку и увидите, что xmlrpc.php все еще используется на вашем сайте, как вам его отключить?
Ну что же, протокол активен, давайте отключать.
Самым простым способом будет установка и активация плагина Disable XML-RPC, не смущайтесь что плагин не обновлялся больше года. Обновлять там нечего, так как он содержит всего одну строчку кода:
add_filter( 'xmlrpc_enabled', '__return_false' );
Именно этот фильтр и отключает протокол «XML-RPC» на WordPress сайте. А если всё же не хочется использовать плагины, то достаточно вставить вышеупомянутый фильтр в файл functions.php вашей темы (желательно дочерней).
В качестве альтернативы можно отключить протокол через .htacess файл, добавив следующее условие:
Order Allow,Deny
Deny from all
Это всё! Если ни одна из этих причин не является особенно веской для вас – смело отключайте.
Единственная причина, по которой этот файл все еще находится в WordPress – это обратная совместимость. Для всех, кто хочет поддерживать свои сайты в актуальном состоянии и работает с новейшими технологиями, отключение xmlrpc.php – лучший вариант.
Протокол «XML-RPC» был разработан еще до создания WordPress как средство взаимодействия WordPress с внешними системами и приложениями. Ему присущи недостатки в плане безопасности, и он может сделать ваш сайт уязвимым для атак.
Начиная с версии 4.4 в WordPress ядро была интегрирована поддержка «REST API», что делает «XML-RPC» абсолютно не нужным. Если вы выполните описанные выше действия, отключив эту функцию, вы повысите безопасность своего сайта.
Если у вас есть вопросы – спрашивайте в комментариях и мы обязательно вам ответим.
Спасибо.
WordPress – это удобная платформа для начинающих и профессионалов веб-мастеров, которая помогает быстро создать и запустить сайт. Тем не менее, есть некоторые основные концепции, которые нужно изучить, прежде чем вы сможете начать создавать свой сайт. Если понимаете что такое WordPress страницы и записи – вы поймете основную часть архитектуры WordPress.
В этой статье мы углубимся в эту тему, покажем, как их создавать, и обсудим другие типы контента, которые может предложить платформа. Давай приступим к работе!
После установки нового веб-сайта на WordPress и последующей авторизации вы увидите панель администратора, которая выглядит следующим образом:
Левая боковая панель содержит различные вкладки, которые направят вас к наиболее важным функциям платформы. Вы можете выбрать тему WordPress, изменить внешний вид сайта в разделе «Внешний вид» и настроить параметры по умолчанию в разделе «Настройки».
На боковой панели есть два важных раздела: «Страницы» и «Записи». Здесь вы будете создавать контент, который, собственно и составляет ваш сайт – то, что видят посетители. Существуют и другие типы контента, о которых мы поговорим позже, но эти два являются наиболее фундаментальными и универсальными.
Как видно из названия, в разделе «Страницы» вы создаете статические веб-страницы своего сайта. Это могут быть ваша домашняя страница, страница контактов, страница «О компании» и т.д.
Хотя страницы могут обновляться и изменяться, они предназначены для статической информации, т.е. которая не меняется со временем.
Записи – это те же самые страницы но предназначенные для другой цели – динамического и чувствительного ко времени контента.
По умолчанию в WordPress записях отображается дата публикации. Сводная страница, на которой записи отображаются в обратном хронологическом порядке, называется индексной и архивом, а саму запись часто называет «Блог-пост» или просто «Пост». В записи часто добавляют функционал комментариев и ваши посетители могут отреагировать и начать обсуждение вашего контента.
Из истории WordPress, понятно, что изначально он позиционировался как платформа для ведения блога и у него есть очень мощный механизм для организации этого типа контента. Это избавляет вас от необходимости обновлять кучу страниц каждый раз, когда вы пишете новый фрагмент контента.
Вот как все работает за кулисами, хотя ваша тема может настраивать работу страниц и записей совершенно в другом свете.
Если основной целью вашего сайта является создание блога, WordPress автоматически генерирует «Index» ваших записей на домашней странице или создает архивный список на любой другой странице, которую вы укажете.
Очень важно понимать, что архив записей может зависть сразу от нескольких параметров. Например, можно вывести все записи автора «Иван» в рубрике «Инструкции» по метке «SEO», да еще за месяц «Май»!
Даже страница результатов поиска, которую WordPress создает динамически, является типом архива. Подумайте, сколько бы времени вам понадобилось, чтобы все это менять каждый раз, когда вы публикуете новый пост!
Обратите внимание, что на некоторых сайтах WordPress есть страницы, но вообще нет постов, на некоторых есть посты, но нет страниц, а на некоторых есть и то, и другое.
Теперь вы должны отличать WordPress страницы от записей, но давайте подведем промежуточный итог:
Записи в WordPress, в отличии от страниц – появляются в различных автоматически генерируемых списках (архивах), обычно отображают дату, имя автора и категории, к которым они принадлежат. С другой стороны, мы обычно не хотим, чтобы на страницах со статическим содержимым отображалась дата или имя автора. А иногда наоборот хотим, чтобы на них содержались какой-то архив или архивы. В качестве примера – посмотрите на главную страницу нашего сайта. Да это это «страница» с точки зрения WordPress, но она состоит из различных архивов записей.
Заметка
Просто чтобы запутать вас совсем, скажем, что есть некоторое совпадение в терминологии в использовании слова «страница». Мы часто говорим о «веб-страницах» в общем смысле, когда ссылаемся на веб-сайт. Например, мы часто ссылаемся на «страницу архива», потому что она отображается как страница на вашем веб-сайте, даже если она не имеет ничего общего с ними в плане работы WordPress.
Понимание основных различий между страницами WordPress и записями – это хорошее начало, а углубившись вы поймете, как их создавать и какие у вас есть варианты их настройки.
А теперь, давайте посмотрим, как настроить первые несколько фрагментов контента на вашем WordPress сайте.
Чтобы создать свою первую страницу WordPress, перейдите на вкладку Страницы → Добавить новую на панели инструментов:
Это приведет вас к редактору блоков WordPress, который вы используете для создания своей страницы по-умолчанию, используя блоки, которые представляют различные типы контента, так же настраивать саму страницу. В рамках этого гайда мы не будем рассказывать про работу с контентом, но у нас отличная статья про редактора блоков в WordPress. Советуем ознакомиться.
Давайте рассмотрим опций для настройки и управления вашей страницей. Перейдите на вкладку «Документ» в правой боковой панели, и вы увидите настройки, относящиеся к странице в целом, как показано на этом скриншоте:
Для начала перейдите в Записи → Добавить новую.
Экран редактирования выглядит очень знакомым, не так ли? То, как вы создаете контент для WordPress записей, идентично процессу, описанному выше для страниц. Вы будете использовать один и тот же набор блоков и получите доступ к их одинаковым настройкам.
Но, давайте сосредоточимся на отличиях. Сразу же вы можете заметить, что параметры на вкладке «Документ» в правой боковой панели отличаются. Он включает в себя две дополнительные настройки – рубрики и метки. Эти настройки позволяют вам организовать ваши записи для последующей фильтрации. Например, рубрики (categories) – это способ сгруппировать похожий контент. Например, в блоге о кулинарии вы можете создать такие категории, как «Здоровые рецепты», «Приготовление пищи на двоих» и «Семейное питание» и т.д., более подробно изучить эту, без сомнения важную специфику WordPress SEO, можно ознакомившись с нашей статей про рубрики и метки, как способ фильтрации контента.
Значимой частью WordPress записей являются комментарии, по умолчанию они включены в разделе Настройки → Обсуждение. Тем не менее, вы можете отключить их, если хотите.
Если ваш сайт включает в себя как WordPress страницы, так и записи, вы должны решить, хотите ли вы, чтобы на главной странице отображался статический контент или архив (индекс) ваших последних записей. Выбор, который вы делаете, зависит от направленности вашего сайта. Если вы хотите выделить свой блог, новостные статьи, обзоры или другой подобный и, как правило, чувствительный ко времени контент, разумно, чтобы ваши посты были в центре внимания. Это настройка по умолчанию для любого нового сайта на WordPress, раскрывающая его происхождение как платформы для блогов.
Если у вас нет блога или вы хотите, чтобы ваши WordPress записи были только частью более крупного сайта, вы можете вместо этого создать статическую главную. страницу. Это стандартный приём для бизнес-сайтов.
Чтобы выбрать тип главной страницы, перейдите в Настройки → Чтение на боковой панели администратора WordPress:
Первая настройка на этой странице помечена как «На главной странице отображать» с несколькими вариантами. Первый вариант, Ваши последние записи, отображает индекс (архив) ваших последних блог-постов, обычно в виде выдержек со ссылками на полные посты. Если вы выберите «Статическую страницу», то в поле «Главная страница» выберите, какую страницу вы хотите использовать в качестве главной (домашней) страницы.
Выбор «страницы записей» на приведенном выше снимке экрана необходим только в том случае, если у вас есть хоть какие то записи и вы хотите отобразить список (архив) последних на странице, отличной от главной. Для этого создайте новую страницу с заголовком, например: «Новости компании», но без какого либо содержимого, затем выберите эту страницу в выпадающем списке «Страница записей».
Так же на странице Настройки → Чтение есть ряд дополнительных параметров. Вы можете настроить, сколько записей отображать в архивах. Это значение используется для формирования постраничной навигации по архивам. Не забудьте нажать кнопку «Сохранить изменения», когда закончите.
Помимо записей и страниц, WordPress имеет и другие встроенные «типы записей». Эта архитектура и само понятие «типы записей» снова указывает на начало WordPress в качестве платформы для блогов. Страницы были созданы как другой тип записей с другими свойствами.
Большинство этих типов записей работают за кулисами, и вам не нужно думать о свойствах этих типов записей, если вы не разработчик.
Новичками часть сложно понять почему страницы это тип записи, а еще и сами записи тоже тип записи! ?
Отсюда вся путаница и пошла. Просто запомните, что архитектура WordPress состоит из различных типов записей (post types), которые включают в себя как страницы (pages) так и записи (posts).
WordPress также позволяет создавать пользовательские типы записей (сокращенно «CPT», а от английского «Custom Post Type») и их организационные схемы, которые называются «Таксономии» и функционируют как рубрики и метки для стандартных записей (постов в вашем блоге).
Нетрудно найти примеры пользовательских типов записей, потому что многие плагины и темы устанавливают и работают с ними.
Наиболее распространенным примером являются плагины для электронной коммерции, такие как очень популярный WooCommerce. Эти плагины обычно добавляют новую вкладку «Товары» на панель инструментов. Если вам интересна тем электронной коммерции прочитайте статью о том как создать интернет-магазин на WooCommerce, быстро, а что еще важнее совершенно бесплатно!
Нет предела, когда дело доходит до пользовательских типов записей. Например, плагин для организации подкаста может добавить тип поста «Эпизоды», а плагин рецензирования может добавить тип записи «Рецензии».
Поскольку CPT идеальны для организации и отображения структурированной информации, они часто идут рука об руку с дополнительными настраиваемыми полями, которые вы можете использовать, чтобы гарантировать, что один и тот же тип информации появляется для каждого элемента. Например, для списков домов обычно требуется размер, количество спален, типы комнат, возраст дома и так далее.
Если вы создаете сайт впервые, вы не ошибетесь с WordPress. После установки программного обеспечения вы, вероятно, захотите начать создавать контент. К счастью, настройка страниц и записей в WordPress – быстрый и интуитивно понятный процесс. И если вы знаете, как создавать записи и страницы, вы будете знать, как работать практически с любым видом контента в WordPress.
У вас есть вопросы о том, как настроить страницы, стандартные записи или другие пользовательские типы записей в WordPress? Дайте нам знать в комментариях ниже!
Спасибо.
Авторизуйтесь, чтобы продолжить *
или
* Если аккунта у Вас еще нет, то он будет создан автоматически