Как настроить автоматическую генерацию и отправку рассылки с новостями с помощью Wordpress?
Здравствуйте! Я новичок в WordPress и мне необходимо настроить автоматическую генерацию и отправку рассылки с новостями с помощью данной платформы. Я уже создал шаблон для письма и настроил список подписчиков. Однако, я не знаю, как создать скрипт, который будет генерировать рассылку с последними новостями и отправлять ее подписчикам.
function send_newsletter() {
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 5,
'orderby' => 'date',
'order' => 'DESC'
);
$latest_posts = get_posts($args);
if ($latest_posts) {
$subject = 'Новости за последнюю неделю';
$message = '';
foreach ($latest_posts as $post) {
setup_postdata($post);
$message .= '' . get_the_title() . '
';
$message .= '' . get_the_excerpt() . '
';
$message .= 'Читать дальше';
}
wp_mail($subscribers, $subject, $message);
}
}
add_action('wp', 'send_newsletter');
Буду благодарен, если кто-то сможет помочь мне разобраться с этой задачей и оптимизировать код, если это возможно. Заранее спасибо за помощь!
Ответы:
Для автоматической генерации и отправки рассылки с новостями на платформе WordPress, вам понадобится создать скрипт, который будет выбирать последние новости и отправлять их подписчикам.
Вам потребуется создать функцию, которая будет выполнять это действие. В примере выше используется функция `send_newsletter()`. Внутри этой функции мы используем функцию `get_posts()` для получения последних публикаций.
Пример кода на PHP:
function send_newsletter() {
$args = array(
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 5,
'orderby' => 'date',
'order' => 'DESC'
);
$latest_posts = get_posts($args);
if ($latest_posts) {
$subject = 'Новости за последнюю неделю';
$message = '';
foreach ($latest_posts as $post) {
setup_postdata($post);
$message .= '' . get_the_title() . '
';
$message .= '' . get_the_excerpt() . '
';
$message .= 'Читать дальше';
}
wp_mail($subscribers, $subject, $message);
}
}
add_action('wp', 'send_newsletter');
В этом коде мы задаем параметры для выборки последних публикаций с помощью массива `$args`. Мы выбираем публикации только с типом `post`, статусом `publish`, ограничиваем количество выбираемых публикаций до 5 и сортируем их по дате в порядке убывания.
Затем мы проверяем, есть ли у нас последние публикации с помощью условия `if ($latest_posts)`. Если есть, мы задаем тему письма и начинаем формировать содержимое письма с помощью цикла `foreach`. Внутри цикла мы используем функции WordPress, такие как `get_the_title()`, `get_the_excerpt()` и `get_permalink()`, чтобы получить заголовок, краткое содержание и ссылку на каждую публикацию.
Форматирование письма осуществляется с помощью HTML-тегов, таких как `