Автоматическое проставление лайков в WordPress — задача, которая может пригодиться для повышения вовлечённости пользователей, облегчения модерирования или реализации специфической логики отображения популярности контента. В этой статье мы рассмотрим, как создать собственную систему автоматических лайков, основываясь на условиях, и приведём примеры решений с кодом.
Почему стоит автоматизировать проставление лайков в WordPress
В стандартном WordPress нет встроенной функции лайков, поэтому обычно используются плагины. Но когда необходима автоматизация — например, проставлять лайки определённым постам в зависимости от категории, количества просмотров или других параметров — стандартных решений недостаточно. Автоматизация помогает:
- Выделять популярный или рекомендуемый контент без участия пользователя.
- Создавать рейтинги на сайте на основе заданных критериев.
- Экономить время на ручном управлении лайками.
Рассмотрим, как реализовать такое решение с нуля и с помощью плагинов.
Использование плагинов для лайков с поддержкой автоматизации
Для начала разберёмся с тем, какие плагины могут помочь реализовать лайки с возможностью программного управления. Среди популярных:
- WPRemark — мощный плагин для социального взаимодействия, поддерживает лайки, комментарии и многое другое. Позволяет через API и хуки программно управлять лайками.
- Clearfy Pro — включает оптимизации и возможность управления частями функционала, включая социальные элементы.
Использование таких плагинов ускорит процесс и обеспечит стабильность. Рассмотрим пример с WPRemark.
Пример автоматического лайка с WPRemark
WPRemark предоставляет функцию wpremark_add_like($post_id, $user_id) для добавления лайка. Мы можем написать функцию, которая проверяет посты и ставит лайк по условию:
function wpsocial_auto_like_posts_by_views() {
$args = [
'post_type' => 'post',
'meta_key' => 'post_views_count',
'orderby' => 'meta_value_num',
'order' => 'DESC',
'posts_per_page' => 10
];
$query = new WP_Query($args);
if ($query->have_posts()) {
while ($query->have_posts()) {
$query->the_post();
$post_id = get_the_ID();
// Проверяем, есть ли уже лайк от пользователя с ID 0 (системный)
if (!wpremark_user_liked_post(0, $post_id)) {
wpremark_add_like($post_id, 0); // 0 - системный пользователь
}
}
wp_reset_postdata();
}
}
add_action('wp_loaded', 'wpsocial_auto_like_posts_by_views');В этом примере мы автоматически ставим лайки 10 самым просматриваемым постам с помощью системного пользователя (ID 0). Функция wpremark_user_liked_post() проверяет, есть ли лайк, чтобы не ставить дубликаты.
Создание собственной системы лайков с автоматическим проставлением
Если вы не хотите зависеть от сторонних плагинов, можно реализовать базовую систему лайков самостоятельно с помощью метаполей и AJAX. Ниже пошаговое руководство.
Шаг 1. Добавляем метаполе для лайков
Для каждого поста будем хранить количество лайков в метаполе wpsocial_likes_count. Для автоматического проставления лайка используем системный пользователь с ID 0 и будем хранить массив ID пользователей, поставивших лайк, чтобы не дублировать.
Шаг 2. Функция добавления лайка в метаполе
function wpsocial_add_like($post_id, $user_id = 0) {
$liked_users = get_post_meta($post_id, 'wpsocial_liked_users', true);
if (empty($liked_users)) {
$liked_users = [];
}
if (in_array($user_id, $liked_users)) {
// Пользователь уже лайкал
return false;
}
$liked_users[] = $user_id;
update_post_meta($post_id, 'wpsocial_liked_users', $liked_users);
$likes_count = get_post_meta($post_id, 'wpsocial_likes_count', true);
$likes_count = $likes_count ? (int)$likes_count + 1 : 1;
update_post_meta($post_id, 'wpsocial_likes_count', $likes_count);
return true;
}Шаг 3. Автоматическое проставление лайков по условию
Допустим, мы хотим ставить лайк всем постам категории "Новости" при публикации:
function wpsocial_auto_like_news_posts($post_id) {
if (get_post_type($post_id) !== 'post') {
return;
}
if (has_category('novosti', $post_id)) {
wpsocial_add_like($post_id, 0); // системный пользователь
}
}
add_action('publish_post', 'wpsocial_auto_like_news_posts');Шаг 4. Вывод лайков в шаблоне
Для отображения количества лайков в шаблоне темы используйте:
echo 'Лайков: ' . (int) get_post_meta(get_the_ID(), 'wpsocial_likes_count', true);Дополнительные идеи по автоматизации лайков
Чтобы расширить функциональность, можно:
- Добавить автоматические лайки при достижении пользователем определённого уровня активности.
- Ставить лайки постам с заданными метками (тегами).
- Интегрировать лайки с системой баллов или достижений.
- Сделать периодическую проверку через WP-Cron и автоматически лайкать посты с высоким рейтингом или количеством просмотров.
Все эти задачи решаются с помощью тех же принципов — проверка условий и вызов функции добавления лайка.
Заключение: почему автоматизация лайков важна для WordPress
Автоматическое проставление лайков — это удобный инструмент для управления социальным взаимодействием на сайте. Он позволяет создавать динамические рейтинги, выделять лучшие материалы и экономить время на ручных операциях. Используйте примеры из статьи, комбинируйте с плагинами типа WPRemark и адаптируйте решение под свои задачи.
Если хотите глубже изучить возможности WPRemark, переходите на официальную страницу плагина.