В процессе создания рассылок на WordPress часто возникает задача ограничить количество постов, которые будут отправляться подписчикам. Это важно для того, чтобы не перегружать письмо большим объемом контента, улучшить читаемость и повысить эффективность рассылки. В этой статье мы подробно разберем, как программно установить лимит на количество постов, выводимых в рассылке, используя стандартные функции WordPress и примеры кода.
Почему важно ограничивать количество постов в рассылке WordPress
Многие плагины для рассылок, такие как MailPoet или Newsletter, автоматически подтягивают свежие записи для отправки. Без ограничения вы рискуете отправить слишком много информации, что негативно скажется на восприятии письма и увеличит нагрузку на сервер при генерации рассылки.
Кроме того, ограничение постов помогает фокусироваться на самом важном контенте, улучшает удобство чтения и снижает вероятность попадания письма в спам из-за слишком большого объема.
Разберемся, как реализовать ограничение на примере собственного кода и популярных плагинов.
Как программно задать лимит на количество постов в рассылке WordPress
Для примера возьмем ситуацию, когда вы формируете список постов для отправки через собственный скрипт или используя WP_Query.
Основной момент — в аргументах запроса необходимо явно указать параметр posts_per_page или numberposts, чтобы контролировать количество выводимых записей.
Пример кода: ограничение постов при выборке через WP_Query
function wpturbo_get_limited_posts_for_newsletter($limit = 5) {
$args = [
'post_type' => 'post',
'posts_per_page' => $limit,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
];
$query = new WP_Query($args);
if (!$query->have_posts()) {
return [];
}
$posts_data = [];
while ($query->have_posts()) {
$query->the_post();
$posts_data[] = [
'title' => get_the_title(),
'link' => get_permalink(),
'date' => get_the_date(),
];
}
wp_reset_postdata();
return $posts_data;
}
В этой функции мы получаем последние 5 постов (по умолчанию) для формирования рассылки. Вы можете изменить значение $limit на любое другое.
Примеры интеграции с популярными плагинами рассылок
Ограничение количества постов в MailPoet
MailPoet позволяет вставлять последние посты в шаблон письма с помощью короткого кода [latest_news]. По умолчанию количество выводимых постов равно 5, но его можно изменить через параметры короткого кода.
Пример использования с лимитом 3 поста:
[latest_news limit=3]
Если вы хотите задать лимит программно, можно использовать фильтр mailpoet_latest_news_query_args:
add_filter('mailpoet_latest_news_query_args', function($args) {
$args['posts_per_page'] = 3; // Лимит постов
return $args;
});
Ограничение постов в плагине Newsletter
В Newsletter для вставки последних записей используется шорткод [posts]. Чтобы задать лимит, используйте атрибут posts:
[posts posts=4]
Также можно настроить количество постов в настройках плагина для шаблонов рассылок.
Дополнительные советы по оптимизации рассылок с ограничением постов
1. Используйте кэширование. Если рассылка формируется регулярно, кэшируйте выборку постов для снижения нагрузки на сервер.
2. Фильтруйте посты по категориям и тегам. Чтобы показывать только релевантный контент, добавьте параметры category_name или tag в WP_Query.
3. Добавляйте краткое описание. Вместе с заголовком можно отправлять анонсы постов, используя функцию wp_trim_words() для ограничения длинны текста.
Пример расширенной функции с фильтрацией и анонсом
function wpturbo_get_limited_posts_with_excerpt($limit = 5, $category = '') {
$args = [
'post_type' => 'post',
'posts_per_page' => $limit,
'post_status' => 'publish',
'orderby' => 'date',
'order' => 'DESC',
];
if ($category) {
$args['category_name'] = $category;
}
$query = new WP_Query($args);
if (!$query->have_posts()) {
return [];
}
$posts_data = [];
while ($query->have_posts()) {
$query->the_post();
$posts_data[] = [
'title' => get_the_title(),
'link' => get_permalink(),
'excerpt' => wp_trim_words(get_the_excerpt(), 20, '...'),
'date' => get_the_date(),
];
}
wp_reset_postdata();
return $posts_data;
}
Использование WPShop плагинов для улучшения рассылок
Если вы используете плагины от WPShop, например, WPGPT для генерации контента или WPRemark для автоматического модерирования комментариев, то интеграция с рассылками может стать ещё удобнее.
Например, с помощью WPGPT можно автоматически создавать краткие анонсы постов для рассылок, что позволит экономить время и улучшить качество контента.
Итоги
Установка лимита на количество постов в рассылке WordPress — важный элемент для управления качеством и объемом отправляемого контента. Используя параметры WP_Query и возможности популярных плагинов, вы сможете легко контролировать количество отображаемых постов и создавать удобные для подписчиков рассылки.