2013-11-11 4 views
0

У меня есть немного кода в моем файле функций, который зацикливается на сообщениях, а затем добавляет вместе facebook и google плюс любит публикацию и сохраняет значение в метатеге сообщения, однако он только сохранил значение в post_meta один раз - это не обновление!update_post_meta не работает в wordpress

В чем моя проблема, почему она не обновляется?

Вот мой код:

$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

Меняются ли эти значения? по умолчанию wordpress ''update_post_meta()' собирается возвратить 'false', если вставленные данные совпадают с данными, которые существуют – Ohgodwhy

+0

yes @Ohgodwhy Я только что изменил массив $ args, чтобы проверить, и ничего не происходит –

+0

можете ли вы сбросить значение возврата из 'update_post_meta()' для нас? – Ohgodwhy

ответ

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%, это проблема, но по крайней мере это устранит ее как потенциального виновника.)

Смежные вопросы