Disqus API:检索“父”帖子永久链接

时间:2014-05-01 19:04:59

标签: php wordpress comments disqus

前段时间我为我的WordPress安装编写了这个片段,以便将5个最新评论显示为列表:

<?php $comments = get_comments('status=approve&number=5'); ?>
<ul style="font-size:5px">
    <?php foreach ($comments as $comment) { ?>
        <li style="font-size:10px">
            <div style="float:left;margin-right:3px"><?php echo get_avatar( $comment, $size = '35' ); ?></div>
            <em style="font-size:12px"><?php echo strip_tags($comment->comment_author); ?></em> (<a href="<?php echo get_option('home'); ?>/?p=<?php echo($comment->comment_post_ID); ?>/#comment-<?php echo($comment->comment_ID); ?>">link</a>)<br>
            <?php echo wp_html_excerpt( $comment->comment_content, 35 ); ?>...
        </li>
    <?php }  ?>
</ul>

今天我安装了Disqus,注释的链接也发生了变化。相同的评论,在链接http://mydomain.com/?p=760/#comment-4986之前,现在是http://mydomain.com/?p=760/#comment-1364246021

由于链接不再起作用,我编写了这个片段,通过Disqus API获取5个最新帖子。它工作正常。我收到了作者和评论内容。

<?php
    ini_set('display_errors', 'on');
    $key="MY_PUBLIC_KEY";
    $forum="MY_FORUM_NAME";
    $limit = '5';

    $endpoint = 'http://disqus.com/api/3.0/posts/list.json?api_key='.urlencode($key).'&forum='.$forum.'&limit='.$limit;

    $j=0;
    listposts($endpoint,$j);

    function listposts($endpoint,$j) {

    // Standard CURL
    $session = curl_init($endpoint);
    curl_setopt($session, CURLOPT_RETURNTRANSFER, 1);
    $data = curl_exec($session);
    curl_close($session);

    // Decode JSON data
    $results = json_decode($data);
    if ($results === NULL) die('Error parsing json');

    // Comment response
    // print($data);

    // Comment response
    $comments = $results->response;

    // Cursor for pagination
    $cursor = '&cursor=' . $results->cursor->next;

    $i=0;
    foreach ($comments as $comment) {
        $name = $comment->author->name;
        $comment = $comment->message;
        // Get more data...

        echo "<em>".$name."</em><br/>";
        echo $comment."<br/>";
        $i++;
    }

}
?>

我希望得到WordPress的链接发表评论&#34;属于&#34;至! 例如,最后一条评论发布在id为44的博客文章中。我希望拥有该ID或更好的完整固定链接(例如domain.com/?p=44)。我搜索了他们的API但我无法找到一些内容来检索永久链接/ id。

编辑:好的,似乎我需要将posts/listthreads/list混合。 但我不知道如何从第一个foreach(posts / list)中提取线程名称,将它们存储在一个数组中,然后将它放在另一个foreach(这次是为线程/列表)获取(对于每个)响应 - >链接。好像我需要有5个不同的请求(对于每一个我需要一个不同的端点,因为线程会发生变化)。

1 个答案:

答案 0 :(得分:1)

posts/list端点中,您可以展开thread对象,该对象应该为您提供所需的信息。 只需添加 related=thread即可。

在响应中,thread现在应该是对象而不是字符串ID。因为您正在使用Wordpress,identifiers对象中应该有一个类似于此的thread数组:

"identifiers": [ "44 http://domain.com/?p=44" ]