显示社交共享总数

时间:2014-02-05 作者:drabello

我必须显示社交共享的总数,就像mashable在其网站上所做的那样。

这不是问题,我找到了一个php代码来完成这项工作。

function getTotalShares($atts) {
extract(shortcode_atts(array(
    \'cache\' => \'3600\',
    \'url\' => 0,
    \'f\' => 0,
    \'bgcolor\' => \'#ffffff\',
    \'bordercolor\' => \'#ffffff\',
    \'borderwidth\' => \'0\',
    \'bordertype\' => \'solid\',
    \'fontcolor\' => \'#7fc04c\',
    \'fontsize\' => \'55\',
    \'fontweight\' => \'normal\',
    \'padding\' => \'1\'
  ), $atts));

 $shareHash = "$cache.$url.$f.$bgcolor.$bordercolor.$borderwidth.$bordertype.$fontcolor.$fontsize.$fontweight.$padding";
 $totalShareRecord = \'totalshares_\' . $shareHash;
 $cachedposts = get_transient($totalShareRecord);
 if ($cachedposts !== false) {
 return $cachedposts;

 } else {

   if (!$url) $url = get_permalink($post->ID);

   $json = file_get_contents("http://api.sharedcount.com/?url=" . rawurlencode($url));
    $counts = json_decode($json, true);
    $return = $counts[\'Twitter\'] + $counts[\'Facebook\'][\'total_count\'] + $counts[\'GooglePlusOne\'];
    if ($f) $return = \'

\' . $return . \'

\'; set_transient($totalShareRecord, $return, $cache); return $return; } } add_shortcode(\'totalshares\',\'getTotalShares\');
现在有问题了!

上面的代码根据permalink获取股票数量,permalink由get_permalink($post->ID);. 我的网站是一个内容聚合器,所以我想获取原始帖子url的共享数量,在我的网站中,该url由帖子元填充links_link_custom. 我的问题是:这可能吗?

我希望这篇文章不会令人困惑,如果需要更多信息,请发表评论。

1 个回复
最合适的回答,由SO网友:drabello 整理而成

我找到了解决方案:

代替

if (!$url) $url = get_permalink($post->ID);

具有

$post_id = get_the_ID();
$url = get_post_meta("$post_id", \'links_link_custom\', true);

结束

相关推荐

WP_Query in functions.php

我有一些代码要转换成函数。它工作得很好,直到我将其包装到所述函数中: $args = array( \'posts_per_page\' => -1, \'post_type\' => \'asset\', \'category_name\' => $cat ); $cat_query = new WP_Query( $args );