Хранить стоимость SNS через функцию function.php

Я пытаюсь сохранить значение SNS share + comment count на моем postmeta, DB. Я поставил код ниже для выполнения этой задачи,

function get_sns_share($post_ID=0) { $url1=get_permalink($post->ID); $src = json_decode(file_get_contents('http://graph.facebook.com/' . $url1)); $share_count = $src->shares; // facebook commnet + comment like + share + like $my_var = get_comments_number( $post_id ); // comment count $social_score = $share_count + $my_var + $tweet; // social score sum if ($social_score > 999) $social_socre = 999; return $social_score; update_post_meta($post_id, '_social_score', $social_score); } 

Проблема в том, что этот код, безусловно, работает в любом поле, отличном от update_post_meta. Кажется, он не добавляет добавить мета-поля сообщения в мою базу данных, поэтому я не могу получить оттуда никакой ценности. Ваша помощь будет высоко оценена.

Внутри функции или метода оператор return немедленно останавливает выполнение предыдущего.
Следовательно, последняя строка никогда не интерпретируется.

Переключите порядок:

 return $social_score; update_post_meta($post_id, '_social_score', $social_score); 

к этому:

 update_post_meta($post_id, '_social_score', $social_score); return $social_score; 

Обновить:

Вы используете три разных переменных для идентификатора сообщения: $post_ID , $post_id и $post->ID . Вы должны использовать аргумент функции: $post_ID .