0

这是我里面的代码functions.php

function facebook_likes($link){
    $obj = json_decode( file_get_contents( 'http://graph.facebook.com/?id='.$link ) );
    $likes = $obj->shares;
    return $likes;
}

function twitter_shares($link) {
    $obj = json_decode(file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url='.$link));
    $tweets = $obj->count;
    return $tweets;
}

当我尝试在我的 中显示数字时index.php,我得到的是完整的 url:

<p> Social: facebook (<?php facebook_likes(the_permalink()); ?>), twitter(<?php twitter_shares(the_permalink()); ?>) </p>

我的html中的输出是这样的:Social: facebook(url), twitter(url)

其中 url 是permalink帖子的。我究竟做错了什么?代码似乎太明显了,无法搞砸。

4

1 回答 1

0

这段代码有几个问题:

  1. the_permalink()会直接输出url。它不会返回任何可以传递给另一个方法的东西。你应该get_permalink改用。

  2. 相反,您的函数返回一个值,但您的使用不会回显该值。

  3. 这是一个糟糕的实现。您的页面加载取决于这两个返回响应的 url。如果他们不这样做,您的页面将加载非常缓慢,因为它会等待请求失败。此外,您可能会遇到查询网址的频率限制。您可能希望为此坚持使用 facebook/twitter 小部件。

于 2013-06-25T00:25:20.813 回答