wp_mail发送除标题之外的所有内容

时间:2015-02-07 17:27:26

标签: php wordpress email

我已经建立了一个功能,可以在发布或更新帖子时发送包含所有发布信息的电子邮件。它的工作方式应该如此,但电子邮件中包含除发布标题之外的所有内容。被困了几个小时。但是如果我更新帖子,我会收到帖子标题,但是当我发布帖子时我没有。只有帖子标题。我感谢您给予的任何帮助。

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);

1 个答案:

答案 0 :(得分:0)

我明白了。我从一个自定义术语中拉出帖子标题,所以它并没有抓住它。所以我必须先从选定的术语中获取标题。

$terms = wp_get_post_terms($post_id, 'regions');
$title = $title ? $title : $terms[0]->name;

然后在电子邮件中发送$ title变量。如果其他人有这种设置或问题