Возьмите сохраненные адреса электронной почты из пользовательского типа сообщений и перейдите в одну строку

У меня есть пользовательский тип сообщения, в котором хранятся письма и имена. Я хотел бы использовать эти адреса электронной почты и объединить (объединить их) в одну строку. Эта строка будет сохранена в переменной, и я буду назначать эту переменную $email_to в wp_mail. Используя cron, последние 3 сообщения будут отправляться на адреса электронной почты по выбранной частоте.

Мой вопрос: Я просто ищу, чтобы кто-то указал мне в правильном направлении. Должен ли я использовать foreach для прокрутки всех этих сохраненных адресов электронной почты в пользовательском типе сообщений, а затем объединить их в строку, хранящуюся в переменной?

ОБНОВЛЕНИЕ Я не ищу, чтобы кто-то предоставил код (что было бы необоснованным). Я ищу «да» или «нет», и немного по возможности, если возможно.

Solutions Collecting From Web of "Возьмите сохраненные адреса электронной почты из пользовательского типа сообщений и перейдите в одну строку"

Есть много способов сделать это. В моих примерах я собираюсь предположить, что вы сохранили электронные письма в поле post_title . wp_mail принимает строку или массив в поле, поэтому вы можете сделать что-то вроде этого …

 <?php $emails = get_posts(array( 'post_type' => 'your_email_storing_type', 'nopaging' => true, )); $to_send = array(); foreach ($emails as $e) { if (!e) { continue; } $to_send[] = $e->post_title; } wp_mail($to_send, /* ... */); 

Или вы можете implode их все вместе (что вы не должны wp_mail позаботится об этом для вас).

 <?php $emails = get_posts(array( 'post_type' => 'your_email_storing_type', 'nopaging' => true, )); $to_send = array(); foreach ($emails as $e) { if (!e) { continue; } $to_send[] = $e->post_title; } wp_mail(implode(',', $to_send), /* ... */); 

Или вы можете перейти непосредственно к wpdb и разгрузить конкатенацию в MySQL.

 <?php global $wpdb; $emails = $wpdb->get_var("SELECT GROUP_CONCAT(post_title SEPARATOR ',') FROM {$wpdb->posts} WHERE post_title = 'your_email_storing_type'"); wp_mail($emails, /* ... */);