保存Facebook喜欢数据库的数量

时间:2012-11-16 作者:kmmathis

我有一个自定义的贴子类型,名为Neighborhoods,它存储有关一个城市的各个社区的信息。每个社区都有一个Facebook页面。我想为每个社区做的是,使用Facebook图表获取页面的赞数,并将其保存在WordPress数据库中,以显示在我网站的各个部分。

我不知道要使用什么代码,但下面是基本的大纲:

Run this once a day:
    Query neighborhood post type in the database
    For each neighborhood:
        $data = json_decode(file_get_contents(\'https://graph.facebook.com/neighborhoodURL\'));
        $numberOfLikes = $data->likes;
        Save $numberOfLikes in it\'s own field in the database
一旦设置好了,我应该能够调用循环中的喜欢数字段。

有人知道最好的方法吗?

1 个回复
最合适的回答,由SO网友:brasofilo 整理而成

首先,您需要设置WordPress cron作业,并注意its shortcomings...

使用法典example, 这是一个如何做到这一点的结构:

add_action( \'my_daily_event\', \'do_this_daily\' );
add_action( \'wp\', \'my_activation\' );

function do_this_daily() 
{
    // 1) Use get_posts to retrieve your Post Type

    // 2) Iterate through the resulting posts and grab the Facebook Page custom field of each post

    // 3) Request FB Graph info as follows
    $fb = wp_remote_get( \'https://graph.facebook.com/Stack-Exchange\', array( \'timeout\' => 120, \'httpversion\' => \'1.1\' ) );
    if ( $fb[\'response\'][\'code\'] == \'200\' )
    {
        $fb_array = json_decode( $fb[\'body\'], true );
        echo \'<pre>\' . print_r( $fb_array, true ) . \'</pre>\';
    }

    // 4) Update the Likes custom field of each post with $fb_array[\'likes\'] value
}

function my_activation() {
    if ( !wp_next_scheduled( \'my_daily_event\' ) ) {
        wp_schedule_event( time(), \'daily\', \'my_daily_event\' );
    }
}

结束

相关推荐

删除Facebook页面发布插件的“发布到Facebook”复选框

我正在使用Facebook页面发布插件,它在metabox submitdiv中添加了一个复选框。我想删除自定义帖子类型的复选框。有没有什么方法可以使用函数来实现这一点?这是Facebook Page Publish中打印复选框的功能:/** * Renders a \'publish to facebook\' checkbox. Renders the box only if * the current post is a real post, not a page or som