这能行吗?我想在向收件人发布帖子时发送一封电子邮件,该邮件在自定义字段中调用。
编辑我将代码更改为我找到的另一个示例。
function wpr_Notification($post_id) {
$post = get_post($post_id);
$to = get_post_meta($post_id, \'recipient\', true);
$headers = \'From: Disctopia Metal Webzine <[email protected]>\';
$title = $post->post_title." has been published";
$message = " Hello ... and so on.... ";
wp_mail($to, $title, $message, $headers);
}
add_action(\'publish_post\', \'wpr_Notification\');
除了收件人之外,一切都很顺利。如果我在这个字段中输入一个静态电子邮件地址,而不是$to,那么它会起作用。但如果我尝试获取自定义字段的值,它就会失败。
我试图通过将$放入$消息并将$改为我自己的电子邮件地址来了解$to的价值。好吧,那美元对你来说毫无价值。
这个变量有什么问题?自定义字段肯定称为“收件人”,只是一个文本字符串。
:(
SO网友:Nadav
您的函数有一个名为$post\\u id的参数,但该参数没有传递给它。get\\u post()函数不受此影响,因为其中的post ID是可选的(该函数将使用全局$post检索post ID)。但是,对于get\\u post\\u meta()函数,post ID是必需的。如果为NULL(就像我认为在您的示例中发生的那样),函数将返回一个空字符串。由于get_post()已经为您检索了WP_post对象,您可以使用它来获取帖子ID。尝试以下操作:
function wpr_Notification() {
$post = get_post();
$to = get_post_meta($post->ID, \'recipient\', true);
$headers = \'From: Disctopia Metal Webzine <[email protected]>\';
$title = $post->post_title." has been published";
$message = " Hello ... and so on.... ";
wp_mail($to, $title, $message, $headers);
}
add_action(\'publish_post\', \'wpr_Notification\');