我的函数文件中有一些代码循环遍历帖子,然后将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();
}
答案 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%肯定这是问题所在,但至少这会消除它作为一个潜在的罪魁祸首。)