0

我的函数文件中有一些代码循环遍历帖子,然后将 facebook 和 google plus 喜欢的帖子加在一起并将值存储在帖子元中,但是它只将值保存在 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();
}
4

1 回答 1

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% 确定这是问题所在,但至少这将消除它作为潜在的罪魁祸首。)

于 2013-11-11T06:11:55.003 回答