当我使用wp_mail时,get_post_meta总是空的

时间:2013-09-26 作者:sublimelaconic

我制作了这个动作挂钩,每当自定义帖子类型“events”中有新帖子时,它都会向用户发送一封电子邮件。

function email_members($post_id) {
global $wpdb;

$usersarray = $wpdb->get_col("SELECT user_email FROM wp_users");
$users = implode(",", $usersarray);

if( ( $_POST[\'post_status\'] == \'publish\' ) && ( $_POST[\'original_post_status\'] != \'publish\' ) ) {
    $subject = \'Event Reminder\';

    $post_url = get_permalink($post_id);
    $post_title = get_the_title($post_id);
    $event_date = get_post_meta( $post_id, \'ch_event_date\', true );

    $message = "APAC Ministries Event Reminder for: ".$post_title."\\n\\n";
    $message .= "Date: ".$event_date;

    wp_mail($users, $subject, $message );
  }
}

add_action(\'publish_th_events\', \'email_members\');
但是$event_date 它总是空的。我尝试在另一个文件中运行此代码,效果良好:

global $post;
$test = get_post_meta($post->ID, \'ch_event_date\', true);
echo $test;
我似乎无法在wp\\u邮件中使用get\\u post\\u meta。

欢迎任何替代解决方案。谢谢

1 个回复
SO网友:Maruti Mohanty

你能检查一下传递的参数吗$post_id 并查看它是否返回post id,否则将全局定义post以及$wpdb likeglobal $wpdb, $post 和使用$post->ID 而不是$post_id.

结束

相关推荐

在模板的header.php中设置的全局变量无法在footer.php中回显

E、 我在标题中设置了这个。我的模板中的php:<?php $postidextra = get_the_ID(); ?> <?php $sidebar_state = get_post_meta($postidextra , \'rw_sidebar_state\', true); ?> 我可以在标题中回显$sidebar\\u状态。php,它正在工作。然而,当我尝试从页脚回显此变量时。php或页面。php它不起作用,我需要重复我的代码来获取帖子id和帖子me