add_action('publish_post', 'notify_members_by_category', 10, 2); function notify_members_by_category($post_id, $post) { if (wp_is_post_revision($post_id)) return; // カテゴリー → UAMグループ $map = array( 'event' => 'member' ); $categories = get_the_category($post_id); if (!$categories) return; foreach ($categories as $cat) { $slug = $cat->slug; if (!isset($map[$slug])) continue; $target_group = $map[$slug]; $users = get_users(); foreach ($users as $user) { // UAMグループ取得 $groups = get_user_meta($user->ID, 'uam_usergroups', true); if (!$groups) continue; if (in_array($target_group, (array)$groups)) { $subject = "【新着情報】" . $post->post_title; $message = "新しい投稿が公開されました。\n\n"; $message .= "タイトル:".$post->post_title."\n"; $message .= "URL:".get_permalink($post_id)."\n\n"; $message .= "※閲覧にはログインが必要です"; wp_mail($user->user_email, $subject, $message); } } } }