2017-08-29 7 views
2

投稿が公開されたときにメールを送信しようとしています。そのため私はfunction.phpファイルにコードを書きましたが、メールは正しく送信されていますが、特集画像は送信されません。投稿に添付されたおすすめ画像を表示したい今のところ、メールでは注目画像は表示されませんが、完成した画像のリンクが表示されます。wp_mail関数のメッセージ部分に画像を表示する方法は?

メールで紹介画像を表示するにはどうすればよいですか?私はfunction.phpファイルに書かれているコードを添付しています:wp_mail関数を使用してファイルを添付するには

function mysendmail($post_id) { 

$post = get_post($post_id); 
$author = get_userdata($post->post_author); 
$subject = "Post Published: ".$post->post_title.""; 

$message = " 
     Hi ".$author->display_name.", 

     Your post, \"".$post->post_title."\" has just been published. 

     View post: ".get_permalink($post_id)." 

     Your Image: ".get_the_post_thumbnail($post->ID)." 

     Thanks" 
     ; 

    wp_mail($author->user_email, $subject, $message); 
} 
add_action('publish_post', 'mysendmail'); 

答えて

2

を、あなたはそれで$添付ファイルのパラメータを使用する必要があります。添付ファイルの絶対パスを指定する必要があります。

function mysendmail($post_id) { 

$post = get_post($post_id); 
$author = get_userdata($post->post_author); 
$subject = "Post Published: ".$post->post_title.""; 


$attachments = get_attached_file(get_post_thumbnail_id($post_id)); 
$headers[] = ''; 


$message = " 
     Hi ".$author->display_name.", 

     Your post, \"".$post->post_title."\" has just been published. 

     View post: ".get_permalink($post_id)." 

     Thanks" 
     ; 

    wp_mail($author->user_email, $subject, $message, $headers, $attachments); 
} 
add_action('publish_post', 'mysendmail'); 
1

あなたは画像が機能するためにtext/htmlにコンテンツタイプを設定する必要があります。 wp_mail_content_typefilterを使用するか、またはwp_mail()機能にヘッダーを追加することで可能です。後者の例があります。

function mysendmail($post_id) { 

    $post = get_post($post_id); 
    $author = get_userdata($post->post_author); 
    $subject = "Post Published: ".$post->post_title.""; 
    $headers = array('Content-Type: text/html; charset=UTF-8'); 

    $message = " 
      Hi ".$author->display_name.", 

      Your post, \"".$post->post_title."\" has just been published. 

      View post: ".get_permalink($post_id)." 

      Your Image: ".get_the_post_thumbnail($post->ID)." 

      Thanks" 
      ; 

    wp_mail($author->user_email, $subject, $message, $headers); 
} 
add_action('publish_post', 'mysendmail'); 
+0

wp_mail()関数にヘッダーを追加しようとしましたが、メール出力で "your image:"フィールドが空白になりました。 – Abhee

1

だけインストールローカルでテストし、それがうまく機能し、これを試してみてください:)あなたが述べたように、画像(大サイズ)の実際のURLを返すイムも、メールのコンテンツタイプを変更する必要があります。

function set_html_content_type() { 
    return 'text/html'; 
} 
function mysendmail($post_id) { 
add_filter('wp_mail_content_type', 'set_html_content_type'); 

$post = get_post($post_id); 
$author = get_userdata($post->post_author); 
$subject = "Post Published: ".$post->post_title.""; 

$image = get_the_post_thumbnail_url($post_id, 'large'); 

$message = ' 
     Hi '.$author->display_name.',<br/><br/> 

     Your post, '.$post->post_title.' has just been published.<br/> 

     View post: <a href="'.get_permalink($post_id).'">'.get_permalink($post_id).'</a><br/> 

     Your Image: <img src="'.$image.'" /><br/><br/> 

     Thanks'; 

    wp_mail($author->user_email, $subject, $message); 
    remove_filter('wp_mail_content_type', 'set_html_content_type'); 
} 
add_action('publish_post', 'mysendmail'); 
+0

あなたのためにいくつかの書式を追加し、投稿のタイトルをリンクしました – Rich