将Instagram图像拉入WordPress并以编程方式创建帖子

时间:2015-07-30 16:52:58

标签: php instagram wordpress instagram-api

我想做的是将Instagram图片拉到我的WordPress网站并创建帖子。

我的代码用于以编程方式创建帖子并提取Instagram图像。我的问题是我想将每个帖子的WordPress内容设置为我的Instagram图片网址。我创建了一个包含一个包含Instagram URL的foreach循环的函数。调用该函数不起作用。

function callInstagram($url)
    {
    $ch = curl_init();
    curl_setopt_array($ch, array(
    CURLOPT_URL => $url,
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_SSL_VERIFYPEER => false,
    CURLOPT_SSL_VERIFYHOST => 2
    ));

    $result = curl_exec($ch);
    curl_close($ch);
    return $result;
    }

    $tag = 'dog';
    $client_id = "my_client_id";
    $url = 'https://api.instagram.com/v1/tags/'.$tag.'/media/recent?client_id='.$client_id;

    $inst_stream = callInstagram($url);
    $results = json_decode($inst_stream, true);

    //Now parse through the $results array to display your results... 
    function testingInsta($results) {
        foreach($results['data'] as $item){
            $image_link = $item['images']['low_resolution']['url'];
            //echo '<img src="'.$image_link.'" />';
        }
    }   

/*  INCLUDE WRAPPER  */
// https://github.com/HarriBellThomas/Wordpress_PostController
require_once(get_template_directory() . '/class.postcontroller.php');


/*  USAGE  */
$Poster = new PostController;
$Poster->set_title( "tesing 11" );
$Poster->add_category(array(1)); //Use category ID
$Poster->set_type( "post" );
$Poster->set_content("<img src='" . testingInsta($results). "'>");
$Poster->set_page_template( "single.php" );
$Poster->set_post_state( "draft" );


$Poster->create();

1 个答案:

答案 0 :(得分:0)

您似乎在testingInsta中注释了function testingInsta($results) { $html = ''; foreach($results['data'] as $item){ $image_link = $item['images']['low_resolution']['url']; $html .= '<img src="'.$image_link.'" />'; } return $html; } 语句。但是,我会稍微重构代码,以便函数返回一个字符串,而不是每次迭代回显。

USAGE

然后,您需要修改<img>块以省略if ( count($results['data']) == 1 ){ $item = array_pop($results['data']); return $item['images']['low_resolution']['url']; } 标记,而只是将帖子的内容设置为函数返回的内容。

如果您只是检索单个图像,则根本不需要迭代。相反,你可以简单地说:

{{1}}