我们之前写过一段代码,可以让您显示 Twitter 关注者数量,该代码由Rarst贡献。在本文中,我们将分享一个更高级、更优雅的代码,它可以让您在 WordPress 中显示 Twitter 关注者数量。这个脚本也是由拉斯特贡献的。
特征
此功能不限于关注者数量。它可以获取Twitter users/show API 方法返回的任何非嵌套值。
它有两级缓存:
- 查询的值使用 WP 选项以数组形式存储在数据库中,持续 $interval 秒;
- API 响应存储在内存中,因此您可以查询任意数量的字段,而无需生成多个 API 请求。
这应该可以安全地同时用于乘法值和乘法用户,而不必担心耗尽 API 限制。
教程
首先打开主题的functions.php文件并添加以下代码:
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 | 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 update if ( !isset( $cache [ $username ][ $field ] ) ) { $cache [ $username ][ $field ] = NULL; $cache [ $username ][ 'lastcheck' ] = 0; } // if outdated if ( $cache [ $username ][ 'lastcheck' ] < (time()- $interval ) ) { // holds decoded JSON data in memory static $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 requested foreach ( $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 模板文件中使用该代码。只需粘贴以下代码:
123 | 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 名关注者。