leon25vlad 25.06.2023 16:04

Как настроить автоматическую генерацию и отправку рассылки с новостями с помощью 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');

Буду благодарен, если кто-то сможет помочь мне разобраться с этой задачей и оптимизировать код, если это возможно. Заранее спасибо за помощь!

Ответы:

eva32widow 25.06.2023 16:14
Для автоматической генерации и отправки рассылки с новостями на платформе 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-тегов, таких как `

`, `

` и ``. В конце цикла мы используем функцию `wp_mail()` для отправки письма со всеми новостями подписчикам. Наконец, мы добавляем нашу функцию `send_newsletter` в хук `wp`, чтобы она выполнилась при загрузке страницы. Если у вас возникнут вопросы или вам потребуется оптимизировать этот код, пожалуйста, сообщите. Буду рад помочь!


Добавить ответ