4

我正在尝试使用 tumblr 照片帖子将“无限滚动”画廊放到外部网站上。

一切正常,但我有一个大问题。

我的 foreach 函数在前 20 个结果后停止工作。无限滚动需要分页才能工作,我需要:

  1. 检索所有帖子,而不仅仅是前 20 个
  2. 一种从第 21 个帖子开始计数,然后在第 31 个帖子之后创建分页的方法

这是我与砌体一起使用的 php

<div id="container">
    <?php
        // tag filtrante
        $tag = 'conceptual';

        $api_key = 'the key';

        // preleva e decodifica il file (prende solo i post di di tipo "photo")
        $tumblr = json_decode(file_get_contents('http://api.tumblr.com/v2/blog/nofrillsintown.tumblr.com/posts/photo?api_key=' . $api_key . '&tag=' . $tag));

        // scorre tutti i post
        foreach ($tumblr->response->posts as $post) {

                // scorre tutte le immagini contenute in un post
                foreach ($post->photos as $photo) {
                        echo '<div class="item"><a href="'.$photo->original_size->url.'" rel="lightbox"><img src="'.$photo->alt_sizes[2]->url.'" /></a></div>';
                };
        };
    ?>
    </div>
4

1 回答 1

0

使用offset参数获取20号之后的帖子:https ://www.tumblr.com/docs/en/api/v2#posts

$limit = 10;
$page = 1;
$url = 'http://api.tumblr.com/v2/blog/nofrillsintown.tumblr.com/posts/photo?api_key=' . $api_key. '&tag=' . $tag;
$url .= '&limit=' . $limit. '&offset=' . ($limit * ($page - 1));

由于 Tumblr 一次只能让您获得 20 个帖子,因此您必须多次拨打此电话。您可能应该缓存结果,而不是在每次页面加载时都进行调用。

于 2015-01-25T15:54:29.807 回答