我想运行一个更新所有帖子的功能。我的问题是该功能仅在我访问该特定帖子时才会运行(仅更新特定帖子)。
我的功能通过帖子来源网址
更新Facebook赞function update_facebook_likes($content) {
global $post;
$url_path = get_post_meta(get_the_ID(), 'url_source', TRUE);
$data = file_get_contents('https://graph.facebook.com/v2.2/?id='.$url_path.'&fields=share&access_token=****');
$obj = json_decode($data);
$like_na = $obj->{'share'};
$like_no = $like_na->{'share_count'};
update_post_meta($post->ID, 'fb_likes_count', $like_no);
}
add_action('wp', 'update_facebook_likes');
function display_fb_likes() {
global $post;
$fb_likes_count = get_post_meta($post->ID, 'fb_likes_count', true);
echo $fb_likes_count;
}
答案 0 :(得分:1)
尝试使用此foreach循环更新所有帖子。使用get_posts()
函数
https://developer.wordpress.org/reference/functions/get_posts/
$args = array(
'posts_per_page' => -1,
);
$posts_array = get_posts( $args );
foreach($posts_array as $post_array)
{
update_post_meta($post_array->ID, 'fb_likes_count', true);
}