wp_after_insert_post 未触发
wp_after_insert_post not triggering
我正在尝试在创建新 post 后发送电子邮件。需要在创建post之后发送,因为我想在邮件中包含post类别。 wp_after_insert_post
似乎不起作用,因为没有发送电子邮件。我曾尝试使用与 publish_post
挂钩相同的代码,它确实可以正确发送电子邮件,但我无法在电子邮件中使用类别名称。
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$sent = wp_mail($to = 'my@email.com', $subject, $message = 'Test message');
};
add_action( ' wp_after_insert_post', 'new_post_email');
有什么解决办法吗?提前致谢
可能您的wp_mail()
函数语法不正确,您的add_action()
中还有一个额外的space。我没有看到可以在函数本身中为变量赋值的文档或示例。我会尝试在函数外声明变量,如下所示:
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$to = 'myemail.com';
$message = 'Test message';
$sent = wp_mail($to, $subject, $message);
};
add_action( 'wp_after_insert_post', 'new_post_email'); // remove space in wp_after_insert...
或者直接将没有声明变量的值直接放入:
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$sent = wp_mail('my@email.com', $subject, 'Test message');
};
add_action( 'wp_after_insert_post', 'new_post_email'); // remove space in wp_after_insert...
我正在尝试在创建新 post 后发送电子邮件。需要在创建post之后发送,因为我想在邮件中包含post类别。 wp_after_insert_post
似乎不起作用,因为没有发送电子邮件。我曾尝试使用与 publish_post
挂钩相同的代码,它确实可以正确发送电子邮件,但我无法在电子邮件中使用类别名称。
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$sent = wp_mail($to = 'my@email.com', $subject, $message = 'Test message');
};
add_action( ' wp_after_insert_post', 'new_post_email');
有什么解决办法吗?提前致谢
可能您的wp_mail()
函数语法不正确,您的add_action()
中还有一个额外的space。我没有看到可以在函数本身中为变量赋值的文档或示例。我会尝试在函数外声明变量,如下所示:
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$to = 'myemail.com';
$message = 'Test message';
$sent = wp_mail($to, $subject, $message);
};
add_action( 'wp_after_insert_post', 'new_post_email'); // remove space in wp_after_insert...
或者直接将没有声明变量的值直接放入:
function new_post_email( $post_id ) {
$categories = get_the_category( $post_id );
$subject = $categories[0]->name;
$sent = wp_mail('my@email.com', $subject, 'Test message');
};
add_action( 'wp_after_insert_post', 'new_post_email'); // remove space in wp_after_insert...