前段时间我为我的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/list与threads/list混合。 但我不知道如何从第一个foreach(posts / list)中提取线程名称,将它们存储在一个数组中,然后将它放在另一个foreach(这次是为线程/列表)获取(对于每个)响应 - >链接。好像我需要有5个不同的请求(对于每一个我需要一个不同的端点,因为线程会发生变化)。
答案 0 :(得分:1)
在posts/list
端点中,您可以展开thread
对象,该对象应该为您提供所需的信息。 只需添加 related=thread
即可。
在响应中,thread
现在应该是对象而不是字符串ID。因为您正在使用Wordpress,identifiers
对象中应该有一个类似于此的thread
数组:
"identifiers": [ "44 http://domain.com/?p=44" ]