Coma Web Development разрабатывает сайты на WordPress c 2010 года. В блоге мы делимся некоторыми наблюдениями из жизни, советами и рекомендациями для тех, кто решит сделать сайт на WordPress самостоятельно.

Как настроить email-подписку на сайте WordPress с помощью MailPoet

Email-подписка — отличный способ удержать внимание читателей и возвращать их на сайт каждый раз, когда появляются новые публикации. Существует много решений для email-подписок: Jetpack, Newsletter, FluentCRM и другие. В этой статье мы используем MailPoet. Он позволяет создавать формы подписки, управлять списками читателей и автоматически рассылать обновления.

Настройка MailPoet

После установки и активации плагина MailPoet, WordPress предложит пройти короткую настройку — нажмите Begin Setup и выполните три шага мастера.

WordPress

Укажите отправителя писем — имя и адрес электронной почты, от которого будут приходить письма подписчикам. Подтвердите настройки конфиденциальности и данных. Подключите ваш MailPoet-аккаунт — нажмите Connect MailPoet — это создаст или свяжет ваш сайт с сервисом MailPoet, обеспечивая надежную доставку писем во входящие, а не в спам. На бесплатном тарифе можно отправлять письма ограниченному числу подписчиков, при необходимости тариф можно расширить позже.

WordPress

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

WordPress

WordPress

После успешного подключения аккаунта вы увидите сообщение MailPoet account connected. Нажмите Start using MailPoet, чтобы сразу перейти к панели управления плагином.

Создание формы подписки

Создайте форму подписки через MailPoet → Forms → Add New Form. При создании формы можно выбрать готовый шаблон из библиотеки MailPoet или создать форму с нуля. Готовый шаблон уже содержит поле для email и кнопку «Подписаться», его можно редактировать с помощью drag-and-drop редактора, изменяя текст, цвета, кнопки и другие элементы. Если вы создаёте форму с нуля, добавляйте блоки вручную — поле для email, кнопку отправки, текстовые блоки и изображения, оформляя форму в соответствии с дизайном сайта.

WordPress

После настройки формы в редакторе MailPoet выберите список рассылки и другие параметры в сайдбаре настроек, например: имя формы, список получателей, сообщение после отправки, стили и размещение формы.

WordPress

В разделе Form Placement можно выбрать разные варианты отображения формы, например, поп-ап, slide-in или под страницей. В этом случае форма будет автоматически показываться в выбранной позиции на сайте.

WordPress

Если вы хотите использовать форму через шорткод, например, вставить её в виджет сайдбара или Gutenberg-блок, необходимо выбрать вариант Others (widget). Только тогда при редактировании формы появится шорткод, например [mailpoet_form id=»1″], который можно скопировать и вставить в нужное место на сайте.

WordPress

Для виджетов сайдбара используйте блок Shortcode или Custom HTML, вставив скопированный шорткод формы. Для Gutenberg-страниц просто добавьте блок MailPoet Form или вставьте шорткод напрямую.

Настройка автоматических писем о новых публикациях

В MailPoet можно создавать несколько типов писем: одиночные рассылки, автоматические уведомления о новых публикациях, приветственные письма для новых подписчиков и т.д. В этой статье мы будем использовать автоматическое письмо с уведомлением о последних публикациях (Latest Post Notifications). Для уведомления подписчиков о новых статьях сайта выберите этот тип письма (MailPoet → Emails → New Email → Latest Post Notifications).

WordPress

После того как вы выбрали создание нового автоматического письма, первым делом появится окно с вопросом “When to send this post notification email?” — здесь нужно указать, как часто MailPoet будет проверять новые публикации и отправлять письма. Например, можно выбрать Once a day at 12:00 am или Immediately after a new post is published. После выбора частоты нажмите Next.

Затем откроется экран выбора шаблона.

WordPress

Выберите подходящий вариант и отредактируйте его в удобном drag-and-drop-редакторе: добавьте логотип, изображения, кнопки, измените цвета и текст, чтобы письмо выглядело в стиле вашего сайта. После завершения редактирования нажмите Next.

На последнем шаге настройте параметры рассылки: укажите список получателей (Send to), частоту отправки (Select a frequency), имя и адрес отправителя (Sender). Если адрес не авторизован, нажмите Authorize it now. Здесь же можно задать параметры аналитики (Google Analytics Campaign) и адрес для ответов (Reply-to).

Когда всё готово, нажмите Activate, чтобы включить автоматическую рассылку. MailPoet будет отслеживать новые публикации сайта и отправлять уведомления подписчикам.

Заключение

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


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как убрать возможность восстановления и смены пароля из WordPress

Зачем убирать восстановление или смену пароля в WordPress

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

Способ первый: убираем опцию восстановления пароля через плагин

Способ с плагином проще и удобнее. Он позволяет вам настроить отмену восстановления пароля для всех пользователей. Вам надо установить и активировать плагин Reset Password Removed.

Примечание: Reset Password Removed отключает восстановление пароля для всех пользователей, включая администраторов.

После активации плагин автоматически убирает ссылку «Забыли пароль?» и блокирует возможность восстановления пароля для всех пользователей.

Способ второй: вручную убираем функцию восстановления пароля в WordPress

Если вы предпочитаете не устанавливать дополнительные плагины, или хотите точечно отключать восстановление пароля для определённых пользователей, можно использовать кастомный код. Для этого откройте любой текстовый редактор и создайте файл, например disable-password-reset.php. Вставьте в него один из ниже приведённых вариантов кода.

Отключение для всех пользователей

Вариант 1: блокировка с перенаправлением и удалением ссылки «Забыли пароль?»

Следующий код полностью блокирует возможность восстановления пароля для всех пользователей, убирает ссылку «Забыли пароль?» на странице входа и перенаправляет всех, кто попытается открыть стандартную страницу сброса пароля, обратно на страницу входа:

<?php
add_filter( 'allow_password_reset', '__return_false' );
add_action( 'login_init', function() {
    if ( isset( $_GET['action'] ) && in_array( $_GET['action'], ['lostpassword', 'retrievepassword'] ) ) {
        wp_redirect( wp_login_url(), 301 ); // Перенаправляет всех на страницу входа
        exit;
    }
});
add_filter( 'gettext', function( $text ) {
    return ( $text === 'Lost your password?' ) ? '' : $text;
});
?>

Вариант 2: блокировка с сохранением возможности восстановления для администраторов

Другой код также полностью блокирует возможность восстановления пароля для всех пользователей и убирает ссылку «Забыли пароль?» на странице входа. Администраторы смогут восстанавливать пароли через админпанель, при этом для обычных пользователей восстановление полностью недоступно:

<?php
class Password_Reset_Removed {
    function __construct() {
        add_filter('show_password_fields', array($this, 'disable'));
        add_filter('allow_password_reset', array($this, 'disable'));
        add_filter('gettext', array($this, 'remove'));
    }

    function disable() {
        $userdata = wp_get_current_user();
        $user = new WP_User($userdata->ID);
        if ( ! empty( $user->roles ) && is_array( $user->roles ) && $user->roles[0] == 'administrator' ) {
            return true; // Администраторы сохраняют возможность восстановления через админпанель
        }
        return false; // Остальные пользователи не могут
    }

    function remove($text) {
        return str_replace(array('Lost your password?', 'Lost your password'), '', trim($text, '?'));
    }
}

$pass_reset_removed = new Password_Reset_Removed();
?>

Отключение для определённых ролей или пользователей

Если нужно блокировать восстановление пароля только для конкретных ролей или отдельных пользователей, используйте код с проверкой ролей или ID пользователей:

Блокировка для всех кроме администраторов:

<?php
add_filter('allow_password_reset', function($allow, $user_id) {
    $user = get_userdata($user_id);
    if (in_array('administrator', $user->roles)) return true; // Администраторы могут сбрасывать пароль
    return false; // Все остальные пользователи не могут
}, 10, 2);
?>

Блокировка для конкретных пользователей по ID:

<?php
add_filter('allow_password_reset', function($allow, $user_id) {
    $blocked_users = [3, 7, 15]; // ID пользователей, для которых восстановление заблокировано
    if (in_array($user_id, $blocked_users)) return false;
    return true; // Остальные пользователи могут сбрасывать пароль
}, 10, 2);
?>

Сохраните ваш файл. Затем соединитесь со своим сайтом по FTP и зайдите в папку wp-content/plugins.

WordPress

Загрузите созданный вами файл в эту папку. Теперь зайдите в админку на страницу Plugins, где вы увидите новый плагин Disable Password Reset в списке установленных. Активируйте его.

WordPress

После активации восстановление пароля будет отключено в соответствии с выбранным вариантом: полностью для всех пользователей, только для обычных пользователей, или для выбранных ролей и конкретных пользователей.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Что такое: .htaccess

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

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

В секции Адмнистрирования WordPress Настройки> Постоянная ссылка, у Вас есть возможность выбрать опцию структуры Вашего URL. WordPress автоматически обновит Ваш .htaccess файл, чтобы применить выбранную структуру.

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

Стоит учитывать, что если Ваш сайт работает на Nginx, то .htaccess не используется — правила перенаправлений, перезаписи URL и кэширования задаются в конфигурации Nginx (например, через nginx.conf) или через панель управления хостинга. При этом современные панели управления (cPanel, Plesk, RunCloud и др.) часто предоставляют возможность автоматического редактирования .htaccess с резервным копированием, что снижает необходимость ручного вмешательства.

Такие плагины как W3 Total Cache, WP Rocket и другие современные решения для кэширования и оптимизации, изменяют Ваш .htaccess файл для настройки кэширования, сжатия и оптимизации ресурсов сайта.

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

Если Вы используете CDN (Cloudflare, BunnyCDN и др.), часть перенаправлений и кэширования может управляться на уровне CDN, а не через .htaccess, что также стоит учитывать при настройке сайта.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как спрятать под замок контент сайта

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

Что такое замкнутый контент и зачем он нужен?

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

WordPress

При неправильном использовании он может вызвать у пользователей раздражение, однако при грамотной эксплуатации это может привести к росту продаж. Скрывание контента эффективно в тех случаях, когда речь идет о чем-то ценном. Например, бесплатном курсе, электронной книге и так далее. Здесь происходит такой же самый психологический трюк как и в случае с content upgrades. Пользователи не будут против выполнить какую-нибудь мелочь в обмен на ценный для них контент.

Что нужно для скрывания контента на WordPress?

В этой инструкции мы с вами будем пользоваться OptinMonster, который на данный момент остаётся одним из лучших решений на рынке. Однако вам понадобится тариф plus или pro, чтобы вы могли прятать контент.

Добавление спрятанного контента

Первым чередом надо установить и активировать плагин OptinMonster. Этот плагин служит всего лишь связующим звеном между вашим сайтом и аккаунтом в системе OptinMonster. После активации плагина вы будете автоматически перенаправлены на страницу OptinMonster для подключения вашего сайта. Здесь плагин создаст безопасное соединение с вашим аккаунтом. После завершения настройки вы попадёте в раздел Campaigns (https://app.optinmonster.com/campaigns/), где можно создавать новые optin-формы, управлять существующими кампаниями и настраивать блокировку контента для вашего сайта.

Чтобы создать кампанию с блокировкой контента, нажмите Create New Campaign. Откроется окно с приветствием и выбором типа кампании. Вам предлагаются три основных варианта:

  • Playbooks — готовые, проверенные кампании, вдохновлённые успешными брендами.
  • Templates — сотни легко настраиваемых шаблонов с высоким коэффициентом конверсии.
  • Canvas — пустой шаблон для полной кастомизации с нуля.

WordPress

Выберите подходящий вариант и продолжите настройку кампании. Для блокировки контента рекомендуется использовать тип After Post / Inline, если вы хотите скрывать материал на страницах или постах.

Мы, например, нашли удобный шаблон Unlock Gated Content в библиотеке готовых решений — он специально предназначен для закрытого контента и отлично подходит для таких задач.

WordPress

Выберите нужный шаблон нажав Use Template.

Далее появится окно с настройками кампании:

  • What do you want to call your inline campaign? — введите название кампании.
  • Which website(s) do you want to load this campaign on? — выберите сайт из выпадающего списка или добавьте новый.

Если вы добавляете новый сайт, вам нужно ввести его название и домен, после чего нажать Start Building.

При добавлении домена важно понимать разницу между:

  • Top-level domain — например, mysite.com — это основной домен сайта. В этом случае кампания будет отображаться только на главном домене, но не будет работать на поддоменах, таких как blog.mysite.com.
  • Sub-domain — например, blog.mysite.com — используется для отдельных разделов или проектов. Кампания в этом случае будет работать только на указанном поддомене и не будет доступна на основном домене или других поддоменах.
  • Wildcard subdomain — например, *.mysite.com — охватывает все поддомены вашего сайта. Это удобно, если вы хотите использовать одну и ту же кампанию на нескольких поддоменах одновременно. Однако кампания при этом не будет работать на основном домене, если вы его явно не добавите отдельно.

После этого откроется визуальный drag-and-drop редактор, в котором можно гибко настроить внешний вид формы: изменить цвета, тексты, кнопки и добавить дополнительные элементы. Это позволяет адаптировать кампанию под дизайн вашего сайта без необходимости писать код.

WordPress

После завершения визуального редактирования кампании вы автоматически попадёте в раздел Display Rules → Conditions. Здесь вы можете выбрать, на каких страницах сайта будет показываться всплывающее окно с формой — например, на всех страницах WordPress-сайта или только на отдельных.

WordPress

После того как вы задали условия отображения, нажмите кнопку “Done? Go To Actions”, чтобы перейти к следующему шагу.

На следующем экране откроется раздел Display Rules → Actions, где можно добавить анимацию появления и звуковое сопровождение через MonsterEffects.

Далее прокрутите вниз до секции Lock Content, где можно включить блокировку контента, активировав переключатель Enable Content Locking.

WordPress

Здесь доступны два варианта поведения:

  • Blur — контент страницы размывается, и пользователи не могут его прочитать, пока не выполнят нужное действие.
  • Remove — контент полностью скрывается.

После того как посетитель выполнит требуемое действие, OptinMonster автоматически откроет доступ к скрытому контенту.

Ниже доступны дополнительные параметры отображения кампании, включая настройки cookie — вы можете задать, через сколько дней повторно показывать кампанию одним и тем же пользователям.

После настройки действий нажмите кнопку Go To Summary, чтобы перейти к сводке кампании и просмотреть логику перед публикацией, убедившись, что условия показа заданы правильно. Не забудьте сохранить изменения через кнопку Save в правом верхнем углу — это необязательно после каждого раздела, но рекомендуется, чтобы не потерять настройки.

Далее при необходимости откройте раздел Integration. Здесь можно настроить теги, сопоставить поля формы и при желании подключить сторонний сервис e-mail маркетинга. Если вы не используете сторонние сервисы, можно оставить настройки Monster Leads по умолчанию.

В разделе Analytics можно подключить сервисы аналитики, например Google Analytics, чтобы отслеживать эффективность кампаний и поведение пользователей.

Когда все настройки кампании завершены, перейдите в раздел Publish. Сначала убедитесь, что ваш сайт корректно подключен к OptinMonster с помощью опции Verify.

WordPress

После успешной проверки статус сайта изменится на Connected.

Затем выберите платформу WordPress.

WordPress

После того как все параметры проверены и сайт подключен, нажмите Publish.

WordPress

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

Для настройки способа отображения inline-кампаний с блокировкой контента откройте WordPress и перейдите в OptinMonster → Campaigns, затем выберите нужную кампанию и нажмите Output Settings.

WordPress

В разделе настроек кампании вы увидите блок WordPess Output Settings:

  • Automatic — блокировка контента происходит автоматически после указанного количества слов или абзацев. Вы можете задать количество абзацев или слов, после которых контент будет размываться или скрываться. Этот режим позволяет скрывать контент на всех постах без ручного редактирования.
  • Manual — вы добавляете шорткод на каждую страницу или пост, где хотите скрыть контент. Для этого скопируйте предоставленный шорткод и вставьте его через блок Shortcode в редакторе WordPress на нужных страницах или постах. Это даёт точный контроль над тем, какой контент будет заблокирован.

WordPress

Теперь вы можете открыть страницу с заблокированным контентом в браузере. Вы увидите, что контент размытый или скрытый. Как только пользователь выполнит требуемое действие (например, введёт email), скрытый материал будет отображён.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как дать пользователям подписываться на авторов в WordPress?

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

Зачем добавлять подписку на авторов?

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

Добавляем возможность подписки на авторов

Каждый автор на вашем сайте имеет собственный RSS фид. Его адрес имеет приблизительно следующий вид:

https://example.com/author/tom/feed/

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

WordPress

Добавляем автоматическую ссылку на подписку

Вы можете автоматически сгенерировать ссылку и использовать shortcode, чтобы вручную вставлять её в посты. Для этого добавьте код в файл functions.php вашей темы или в собственный плагин, созданный специально для вашего сайта.

// Function to generate author's RSS feed link
function wpb_author_feed() {
    $author_id = get_the_author_meta('ID');
    $author_feed = get_author_posts_url($author_id) . 'feed/';
    $author_name = get_the_author_meta('display_name');

    return '&lt;a href="' . esc_url($author_feed) . '" class="author-subscribe-link"&gt;Подписаться на посты ' . esc_html($author_name) . '&lt;/a&gt;';
}

// Create a shortcode to display the link
add_shortcode('authorfeed', 'wpb_author_feed');

// Enable shortcode execution in WordPress text and block widgets
add_filter('widget_text_content', 'do_shortcode'); 
add_filter('widget_block_content', 'do_shortcode');

Теперь можете использовать в своих постах шорткод [authorfeed] и у вас автоматически сгенерируется ссылка на RSS фид автора поста. Можете менять текст ссылки как вам угодно.

WordPress

Обратите внимание, что RSS-ссылка не создаёт реальную подписку — она просто открывает XML-фид автора. Чтобы подписаться, пользователю нужно добавить эту ссылку в своё приложение для чтения новостей (например, Feedly, Inoreader или NewsBlur).

Добавляем ссылку подписки на автора в сайдбаре

Теперь, когда шорткод готов, можно добавить ссылку на RSS-подписку в сайдбаре вашего сайта. Перейдите в раздел Appearance > Widgets и добавьте текстовый или Custom HTML виджет в область сайдбара, где вы хотите разместить ссылку. В текстовое поле вставьте шорткод [authorfeed], после этого нажмите Save.

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

Чтобы всё работало правильно, необходимо ограничить показ виджета только страницами записей.
Это можно сделать следующими способами:

  • Через редактор блоков виджетов (Gutenberg Widgets):
    при добавлении блока “Shortcode” или “HTML” в область виджетов, нажмите на него → в боковой панели выберите “Условия показа” (если поддерживается вашей темой или плагином, например Widget Options или Block Visibility).
    Укажите условие: Показывать только на отдельных записях (Single Posts).

  • С помощью плагина Widget Options:
    установите Widget Options, откройте настройки нужного виджета и отметьте пункт “Show on → Post Types (отмечен значком булавки) → Posts”.

WordPress

Теперь при просмотре любой статьи в сайдбаре будет отображаться корректная ссылка на RSS-фид именно того автора, который написал пост. Можете использовать немного CSS, чтобы создать красивую кнопку или добавить иконку для подписки.

Использование RSS-ссылок остаётся самым простым и надёжным способом позволить пользователям подписываться на конкретного автора: каждый читатель получает обновления именно того автора, который ему интересен, и никаких сложных настроек или дополнительных плагинов не требуется. В то же время современные методы, такие как подписка по электронной почте или push-уведомления, становятся всё более популярными и широко используемыми для общих подписок на сайт. Подробно о том, как реализовать подписку через e-mail и push, будет рассказано в отдельных статьях.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как использовать WP-CLI для управления WordPress

WP-CLI — это мощный инструмент командной строки, который позволяет управлять сайтом WordPress без использования браузера. С его помощью можно быстро обновлять плагины, работать с записями, управлять пользователями, выполнять резервное копирование и автоматизировать рутинные задачи.

Он идеально подходит как для разработчиков, так и для администраторов, особенно если вы работаете с несколькими сайтами или большими проектами.

Почему стоит использовать WP-CLI

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

С WP-CLI всё это можно делать в несколько раз быстрее, просто набирая команды в терминале. Это удобно, если вы:

  • обслуживаете несколько сайтов и хотите ускорить рутинные операции;
  • автоматизируете процессы (скрипты, cron);
  • работаете на staging или production-серверах через SSH, где нет доступа к админке или нужно быстро решать проблемы;
  • хотите выполнять массовые операции без кликов в интерфейсе.

Для локальной разработки WP-CLI также идеально подходит: вы можете тестировать команды на локальном сервере (например, WAMP) без риска повредить живой сайт. Все команды будут выполняться на вашем компьютере, а не на реальном сервере.

Установка WP-CLI на локальном сервере (WAMP)

Для удобства создайте отдельную папку для WP-CLI, например, C:\wp-cli.  Это позволит использовать WP-CLI глобально и не привязывать его к конкретному сайту. В командной строке (Command Prompt) создайте папку и перейдите в неё:

mkdir C:\wp-cli
cd C:\wp-cli

Находясь в этой папке, скачайте WP-CLI с помощью команды:

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar

Иногда скачанный файл может иметь расширение .txt, например wp-cli.phar.txt. В этом случае переименуйте его обратно в wp-cli.phar:

rename wp-cli.phar.txt wp-cli.phar

Проверить работу WP-CLI можно командой:

php C:\wp-cli\wp-cli.phar --info

Эта команда выведет информацию о версии WP-CLI, PHP и вашей рабочей среде.

Чтобы не вводить полный путь к .phar каждый раз, можно создать batch-файл wp.bat в той же папке с содержимым:

@ECHO OFF
php "C:\wp-cli\wp-cli.phar" %*

После этого команду можно будет запускать просто:

wp --info

*На Windows 10/11 иногда batch-файл не корректно обрабатывает %*, поэтому для стабильной работы удобнее использовать прямой вызов .phar через PHP.

Установка WP-CLI на живой сайт через SSH

Подключитесь к серверу через SSH:

Перейдите в корень WordPress, где находится файл wp-config.php:

cd /path/to/wordpress

*Замените /path/to/wordpress на реальный путь к вашей установке WordPress.

Если WP-CLI установлен глобально, проверить работу WP-CLI можно командой:

wp --info
Если глобальная установка не выполнена, используйте прямой вызов .phar:
php wp-cli.phar --info

Работа с WP-CLI

WP-CLI всегда должен запускаться из корня сайта, где находится wp-config.php.

На локальном сервере Windows это обычно:

C:\wamp64\www\mysite

На live-сервере через SSH:

cd /path/to/wordpress

*Замените mysite или /path/to/wordpress на реальные имена ваших папок.

Полезные команды WP-CLI

Обновление ядра WordPress

wp core update

Установка и активация плагина

wp plugin install contact-form-7 --activate

*Замените contact-form-7 на название вашего плагина.

Установка и активация темы

wp theme install twentytwentyfive --activate

*Замените twentytwentyfive на нужную тему.

Добавление нового пользователя

wp user create editor [email protected] --role=editor --user_pass=123456

*Замените editor, [email protected] и 123456 на реальные имя пользователя, email и пароль, которые вы хотите использовать.

Резервная копия базы данных

wp db export backup.sql

Импорт базы данных

wp db import backup.sql

Деактивация сбойного плагина

wp plugin deactivate problem-plugin

*Замените problem-plugin на название вашего плагина.

Итог

Использование WP-CLI позволяет:

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

Эти возможности делают WP-CLI особенно полезным для разработчиков, администраторов и при работе с несколькими сайтами или большими проектами.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как вывести список постов по расписанию

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

Что такое посты по расписанию?

Если вы уже какое-то время занимаетесь блоггингом, то наверняка заметили, что публикуя посты в определенное время может помочь заработать больше просмотров. Если вы новенький в ведении блога, то вам следует начать с анализа посещаемости (например, Google Analytics / GA4), чтобы понять, когда ваша аудитория наиболее активна.

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

Важно понимать: по умолчанию WordPress не показывает посетителям посты в статусе Scheduled (запланированные). Они автоматически станут видимыми в блоге только в назначенное время. Но если вы хотите вывести список будущих записей (например, раздел «Скоро выйдет»), это можно сделать с помощью плагина или собственного кода. В этой статье мы рассмотрим оба варианта.

Способ первый: отображение грядущих постов при помощи плагина

Установите и активируйте плагин Display Posts. Он добавляет универсальный шорткод, который позволяет выводить записи по любым параметрам, включая статус future. Вставьте в запись, страницу или блок Shortcode следующий код:

[display-posts post_status="future" order="ASC" posts_per_page="5"]

Этот шорткод выведет до 5 запланированных постов в порядке возрастания даты публикации. (Параметр posts_per_page="5" определяет количество выводимых постов. Вы можете заменить 5 на любое другое число, чтобы показывать нужное количество запланированных записей).

Список можно разместить в сайдбаре через блок «Shortcode» или «Custom HTML», а также вставить прямо в текст страницы или записи.

Проблема со ссылками

По умолчанию Display Posts создаёт ссылки на заголовки постов. Для авторизованных пользователей (админ, редактор, автор) они работают и ведут на превью поста, а для незалогиненных пользователей ссылки ведут на 404, так как пост ещё не опубликован.

Решение с CSS

Чтобы ссылки отображались только для авторизованных пользователей, а для всех остальных были просто текстом, добавьте следующий CSS в кастомный CSS вашего сайта или в тему:

.logged-out .display-posts-list a {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    color: inherit;
}

Для незалогиненных пользователей ссылки внутри .display-posts-list становятся некликабельными благодаря классу .logged-out, в то время как авторизованные пользователи видят рабочие ссылки. Таким образом вы можете безопасно показывать список будущих постов на сайте без риска, что посетители попадут на 404 страницы.

Способ второй: показываем запланированные посты вручную

Если вы предпочитаете лёгкий кастомный код без плагинов, добавьте следующий код в файл functions.php вашей дочерней темы или создайте небольшой собственный плагин-сниппет.

// Add this code to your child theme's functions.php or a small custom plugin
function wpb_upcoming_posts() {
    // Query for future posts
    $the_query = new WP_Query( array(
        'post_status'    => 'future',      // Only get scheduled posts
        'posts_per_page' => 3,             // Limit number of posts displayed
        'orderby'        => 'date',        // Order by post date
        'order'          => 'ASC',         // Earliest posts first
    ) );

    // Initialize output variable
    $output = '';

    // Check if there are future posts
    if ( $the_query->have_posts() ) {
        $output .= '<ul class="upcoming-posts">';
        while ( $the_query->have_posts() ) {
            $the_query->the_post();

            // Escape title and date for security
            $title = esc_html( get_the_title() );
            $date  = esc_html( get_the_date( get_option( 'date_format' ) ) );

            // If user is logged in, show link; otherwise show only title and date
            if ( is_user_logged_in() ) {
                $permalink = esc_url( get_permalink() );
                $output .= "<li><a href=\"{$permalink}\">{$title}</a> ({$date})</li>";
            } else {
                $output .= "<li>{$title} ({$date})</li>";
            }
        }
        $output .= '</ul>';
    } else {
        // Message if no scheduled posts are found
        $output .= '<p>No upcoming posts yet.</p>';
    }

    // Reset post data after query
    wp_reset_postdata();

    // Return the HTML output
    return $output;
}

// Register shortcode [upcoming_posts]
add_shortcode( 'upcoming_posts', 'wpb_upcoming_posts' );

// Enable shortcode execution in text widgets
add_filter( 'widget_text', 'do_shortcode' );

Теперь зайдите в Appearance – Widgets (или в редактор блоков) , добавьте блок «Shortcode» или «Custom HTML» в сайдбар и вставьте этот шорткод:

[upcoming_posts]

WordPress

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


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как найти и заменять текст в вашей базе данных WordPress одним щелчком

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

Когда вам может понадобиться поиск и замены в базе данных WordPress

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

Приступаем к делу

Как мы уже упомянули выше, изменения вернуть назад будет невозможно, поэтому советуем вам сделать бэкап базы данных – это можно сделать при помощи плагина или phpMyAdmin — после чего можно приступать к поиску и замене.

Поиск и замена при помощи плагина

Если вы не дружите с кодом и не хотите писать SQL запрос, то есть более простой способ найти и заменить текст. Это плагин WordPress под названием Better Search Replace.

WordPress

Он позволяет вам запускать команды по поиску и замене прямо в самой админке WordPress.

Главное преимущество Better Search Replace — он корректно работает с сериализованными данными, которые часто хранятся в опциях и метаполях WordPress. Это особенно важно, если вы заменяете доменные имена или ссылки на HTTPS — простая текстовая замена может повредить сериализованные массивы, поэтому рекомендуется использовать именно плагин или WP-CLI (см. ниже).

Запуск SQL запроса поиска и замены в phpMyAdmin

Вы можете использовать phpMyAdmin, чтобы найти и заменить текст в базе данных WordPress. Сперва надо зайти в админку cPanel вашего хостинга. Пролистайте вниз до секции баз данных и щелкните по phpMyAdmin.

WordPress

На скриншоте выше отображена админка cPanel в Hostnet. Ваша админка может выглядеть иначе. Запустится phpMyAdmin, где вам надо будет щелкнуть по названию базы данных WordPress и потом щелкнуть по SQL.

WordPress

Вам надо будет ввести ваш SQL-запрос следующим образом:

update TABLE_NAME set FIELD_NAME =
replace(FIELD_NAME, 'Text to find', 'text to replace with');

Например, если вы хотели найти текст в постах WordPress, то вам надо написать запрос подобным образом:

update wp_posts set post_content =
replace(post_content, 'Text to find', 'text to replace with');

Нажмите на кнопку Go, чтобы продолжить. phpMyAdmin запустит SQL-запрос и в случае успеха покажет количество замененных строк. Можете теперь зайти на свой сайт, чтобы увидеть изменения.

*Обратите внимание: префикс таблиц может отличаться от стандартного wp_.

Альтернатива для продвинутых пользователей: WP-CLI

В настоящее время для больших сайтов и разработчиков одним из самых быстрых способов замены текста является WP-CLI — консольный инструмент управления WordPress. Он также поддерживает сериализованные данные и может работать со всеми таблицами сразу.

Пример команды:

wp search-replace 'http://oldsite.com' 'https://newsite.com' --all-tables

Эта команда выполнит безопасную замену по всей базе данных и автоматически обработает сериализацию.


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520


Как изменить расписание удаления спама в Akismet

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

Зачем менять расписание?

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

Меняем расписание

*Если Askimet пометил нормальный комментарий как спам, то вы можете отметить его как нормальный, что улучшит алгоритм распознавания спама.

WordPress

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

add_filter( 'akismet_delete_comment_interval', 'custom_spam_delete_interval' );

function custom_spam_delete_interval() {
	return 7;
}

Поменяйте цифру 7 на любое количество дней, в течение которых вам надо, чтобы хранились комментарии. Поменяв на 0, позволит Akismet удалить все комментарии при следующем расписании.

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

Проверка изменений

Вы можете увидеть изменения, зайдя на страницу Settings – Akismet. Прокрутите вниз и вы увидите примечание: Spam in the spam folder older than X days is deleted automatically, где X — это количество дней, которое вы указали.

WordPress

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


Наша специальность — разработка и поддержка сайтов на WordPress. Контакты для бесплатной консультации — [email protected], +371 29394520