get_post_meta在functions.php中的函数内部不起作用,但在外部起作用
function notify_new_posts($post_id) {$keyval = get_post_meta( $post_id);
$buyer_wdistance= get_post_meta( $post_id, 'cf_wdrive');
//$buyer_wdistance=$keyval['cf_wdrive'][0];
$buyer_location=$keyval['cf_address'][0]." , ".$keyval['cf_zipcode'][0];
//$buyer_location= '3302 23rd street, astoria, ny';
//$buyer_wdistance= '10';
$post= get_post($post_id);
$author= get_userdata($post->
post_author);
$author_email= $author->
user_email;
$email_subject = " New car request posted ";
$blogusers = get_users( 'blog_id=1&
orderby=nicename&
role=dealership' );
foreach ( $blogusers as $user ) {$target_email=$user->
user_email;
$current .= " targetemail: ".$target_email ." | " ;
$dealer_location = get_usermeta($user->
id, 'company_name')." , ".get_usermeta($user->
id, 'rep_name') ;
$current .= " dealerlocation: ".$dealer_location . " | " ;
$from = $buyer_location;
//echo "<
br>
";
$to= $dealer_location;
$from = urlencode($from);
$to= urlencode($to);
$data = http://www.srcmini.com/file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&
destinations=$to&
language=en-EN&
sensor=false");
$data = http://www.srcmini.com/json_decode($data);
$time= 0;
$distance = 0;
foreach($data->
rows[0]->
elements as $road) {
$time += $road->
duration->
value;
$distance += $road->
distance->
value;
}$distance = round($distance*0.000621371);
$time = round($time/60);
//echo"distance to this dealer in miles ".$distance."<
br>
";
$current .= " distance: ".$distance . " | " ;
if ($distance<
= $buyer_wdistance ){ob_start();
?>
<
html>
<
head>
<
title>
New post at <
?php bloginfo( 'name' ) ?>
<
/title>
<
/head>
<
body>
<
p>
Hello <
?php echo $author->
user_firstname ?>
, <
/p>
<
p>
A new lead was posted: <
a href="http://www.srcmini.com/<
?php echo get_permalink($post->
ID) ?>">
<
?php the_title_attribute() ?>
<
/a>
.<
/p>
<
/body>
<
/html>
<
?php$message = ob_get_contents();
ob_end_clean();
wp_mail( $target_email, $email_subject, $message );
} //end of if statememnt}$file = 'people.txt';
// Open the file to get existing content
//$current = file_get_contents($file);
// Append a new person to the file$current .= " postid: ".$post_id." | " ;
$current .= " author: ".$post->
post_author. " | " ;
$current .= " author_email ".$author_email. " | " ;
$current .= " buyerlocation: ".$buyer_location.$buyer_wdistance. " | " ;
$current .= " buyerwdistance: ".$buyer_wdistance . " | " ;
// Write the contents back to the file
file_put_contents($file, $current);
}add_action( 'publish_post', 'notify_new_posts', 10, 2 );
【get_post_meta在functions.php中的函数内部不起作用,但在外部起作用】这是我在functions.php中的函数的开头(是现在, 根据帮助程序的请求现在是完整的代码), 我发疯了, 因为如果我使用相同的get_post_meta OUTSIDE函数INSIDE functions.php => , 只要我能正常使用传递正确的帖子ID。但是一旦它在被钩住的函数内部(是的, 有一个钩子, 其余的都可以正常工作), 它就不会返回值。请帮忙
#1你可能需要将$ post以及$ post_id传递给函数。尝试将第一行更改为:
function notify_new_posts( $post_id, $post ) {
参考:http://codex.wordpress.org/Plugin_API/Action_Reference/publish_post
#2使用全局$ post;
例如:
function notify_new_posts($post_id) {
global $post;
推荐阅读
- 背景图片(url(‘img/bg-showcase-2.jpg’);)
- 在WordPress中获取第一段内容
- get_field不预先提供自定义字段的输出
- 获取WordPress主题(3.2)中的当前用户名
- H1,H2,H3标题中的粗体字体-92590
- 获取活动页面的当前类别ID
- 获取所有类别,然后显示每个学期的所有post
- 从WordPress中的当前页面获取所有附件
- debian安装ncat只为测udp网络通信