在Wordpress中同时更新所有帖子元

时间:2017-08-19 19:16:25

标签: php wordpress

我想运行一个更新所有帖子的功能。我的问题是该功能仅在我访问该特定帖子时才会运行(仅更新特定帖子)。

我的功能通过帖子来源网址

更新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;
}

1 个答案:

答案 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);
}