私がこれを達成するのを助けることができるaction_hookまたは類似の何かがありますか?
マークアップをPHP文字列変数に追加してみたところ、wp_mail関数を使用して電子メールを送信しました。
$email_to = '[email protected]';
$email_subject = 'Email subject';
$email_body = "<html><body><h1>Hello World!</h1></body></html>";
$send_mail = wp_mail($email_to, $email_subject, $email_body);
しかし、それは平文として現れましたか?
何か案は?
デフォルトのコンテンツタイプは 'text/plain'です。これはHTMLの使用を許可しません。ただし、 'wp_mail_content_type'フィルタを使用してEメールのコンテンツタイプを設定できます。
// In theme's functions.php or plug-in code:
function wpse27856_set_content_type(){
return "text/html";
}
add_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
代わりに、$ headersパラメータにContent-Type HTTPヘッダーを指定できます。
$to = '[email protected]';
$subject = 'The subject';
$body = 'The email body content';
$headers = array('Content-Type: text/html; charset=UTF-8');
wp_mail( $to, $subject, $body, $headers );
Wp_mail関数を使用した後は、コンテンツタイプフィルタを削除することを忘れないでください。受け入れられた答えの命名に従って、あなたはwp_mailが実行された後にこれをするべきです:
remove_filter( 'wp_mail_content_type','wpse27856_set_content_type' );
こちらのチケットをチェックしてください - 競合を避けるためにcontent-typeをリセットしてください - http://core.trac.wordpress.org/ticket/23578