我已经建立了一个功能,可以在发布或更新帖子时发送包含所有发布信息的电子邮件。它的工作方式应该如此,但电子邮件中包含除发布标题之外的所有内容。被困了几个小时。但是如果我更新帖子,我会收到帖子标题,但是当我发布帖子时我没有。只有帖子标题。我感谢您给予的任何帮助。
function send_media_emails($post_id, $post_after){
if(defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
return;
if(get_post_status($post_id) == 'draft' or get_post_status($post_id) == 'pending' or get_post_status($post_id) == 'trash')
return;
$to = 'myemail@gmail.com';
$subject = 'My Email Subject';
$post = get_post();
$post = $post_after;
//$post_title = get_the_title($post_id);
$body = '<h1>'.get_the_title($post_id).'</h1>';
if(is_category){
$category = get_the_category();
$body .= '<h2>Reason for Closure: <em>'.$category[0]->cat_name .'</em></h2>';
}
$body .= '<h3>This Cancellation/Delay was posted on '.$post->post_date.'</h3>';
$body .= '<p>'.$post->post_content.'</p>';
$body .= '<p>View this posting at ' . get_permalink($post_id) . ' or</p>';
if(did_action('post_updated') == 1){
wp_mail($to, $subject, $body);
}
}
add_action('post_updated', 'send_media_emails', 10, 2);
答案 0 :(得分:0)
我明白了。我从一个自定义术语中拉出帖子标题,所以它并没有抓住它。所以我必须先从选定的术语中获取标题。
$terms = wp_get_post_terms($post_id, 'regions');
$title = $title ? $title : $terms[0]->name;
然后在电子邮件中发送$ title变量。如果其他人有这种设置或问题