update_post_meta在wordpress中不起作用

时间:2013-11-11 00:58:29

标签: php facebook wordpress

我的函数文件中有一些代码循环遍历帖子,然后将facebook和google plus添加到帖子并将值存储在post meta中,但是它只保存了post_meta中的值 - 它没有更新!

这里有什么问题,为什么不更新?

这是我的代码:

$the_query = new WP_Query( $args );

while ( $the_query->have_posts() ) : $the_query->the_post();

// Get Facebook Likes From FB Graph API
$data = file_get_contents('http://graph.facebook.com/?id='. get_permalink());
$obj = json_decode($data);
$like_no = intval($obj->{'shares'});

$html =  file_get_contents( "https://plusone.google.com/_/+1/fastbutton?url=".urlencode(get_permalink()));
    $doc = new DOMDocument();   $doc->loadHTML($html);
    $counter=$doc->getElementById('aggregateCount');
    $google_no = $counter->nodeValue;

   $shares_total = $like_no + $google_no;

// Add Facebook Likes to Post Meta
update_post_meta(get_the_ID(), '_mn_fb_likes', $shares_total);

endwhile;
wp_reset_postdata();
}

1 个答案:

答案 0 :(得分:0)

$query->the_post();应该为您设置全局$post变量,因此您应该可以替换

update_post_meta(get_the_ID(), '_mn_fb_likes', $shares_total);

update_post_meta( $post->ID, '_mn_fb_likes', $shares_total );

如果问题出在您的get_the_ID()电话上,则应该解决此问题。 (我不是100%肯定这是问题所在,但至少这会消除它作为一个潜在的罪魁祸首。)