我们之前写过一段代码,可以让你显示由Rarst贡献的 twitter 关注者数量。在本文中,我们将分享一个更高级、更优雅的代码,它可以让您在 WordPress 中显示 Twitter 关注者数量。再一次,这个脚本也是由 Rarst 贡献的。
特征
此功能不限于追随者人数。它可以获取Twitter users/show API 方法返回的任何非嵌套值。
它有两级缓存:
查询值在数据库中存储为数组,使用 WP 选项,持续 $interval 秒;
API 响应存储在内存中,因此您可以查询任意数量的字段,而无需生成多个 API 请求。
这应该可以安全地同时用于乘法值和乘法用户,而不必担心耗尽 API 限制。
教程
首先打开主题的functions.php文件并添加以下代码:
function rarst_twitter_user( $username, $field, $display = false ) {$interval = 3600;$cache = get_option(‘rarst_twitter_user’);$url = ‘http://api.twitter.com/1/users/show.json?screen_name=’.urlencode($username); if ( false == $cache )$cache = array(); // if first time request add placeholder and force updateif ( !isset( $cache[$username][$field] ) ) {$cache[$username][$field] = NULL;$cache[$username][‘lastcheck’] = 0;} // if outdatedif( $cache[$username][‘lastcheck’] < (time()-$interval) ) { // holds decoded JSON data in memorystatic $memorycache; if ( isset($memorycache[$username]) ) {$data = $memorycache[$username];}else {$result = wp_remote_retrieve_body(wp_remote_request($url));$data = json_decode( $result );if ( is_object($data) )$memorycache[$username] = $data;} if ( is_object($data) ) {// update all fields, known to be requestedforeach ($cache[$username] as $key => $value)if( isset($data->$key) )$cache[$username][$key] = $data->$key; $cache[$username][‘lastcheck’] = time();}else {$cache[$username][‘lastcheck’] = time()+60;} update_option( ‘rarst_twitter_user’, $cache );} if ( false != $display )echo $cache[$username][$field];return $cache[$username][$field];}
用法
粘贴函数后,现在您可以在任何您喜欢的 WordPress 模板文件中使用代码。只需粘贴以下代码:
echo rarst_twitter_user(‘wpbeginner’, ‘name’).’ has ‘.rarst_twitter_user(‘wpbeginner’, ‘followers_count’).’ followers after ‘.rarst_twitter_user(‘wpbeginner’, ‘statuses_count’).’ updates.’;
上面的代码将显示如下内容:
WPBeginner 在 1300 次更新后拥有 5846 位关注者。
资料来源:拉斯特