麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > CMS > Wordpress > 正文

wordpress顯示評論者地理位置與瀏覽器類型

2024-09-07 00:51:14
字體:
來源:轉載
供稿:網友

wordpress評論不具體記錄評論者的地理位置與瀏覽器類型,這個功能我們需要進入二次開發或使用插件,下面我介紹的不使用插件,是直接使用源碼操作,具體例子如下.

顯示評論者地理位置

將以下函數放到你的functions.php 中,實現的原理是利用新浪和淘寶的IP查詢接口,返回IP所屬城市,小修了下代碼,去掉了掛載點,直接在顯示評論時調用函數,代碼如下:

  1. /** 
  2.  * 使用api獲取<a title="查看與城市有關的文章" 城市名 
  3.  * @param string $ip 
  4.  * @return string|mixed 
  5.  */ 
  6. function wpgo_get_city($ip = null) { 
  7.     $ip = $ip == null ? wpgo_get_ip() : $ip
  8.     $ipApi = array ( 
  9.             'http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip='
  10.             'http://ip.taobao.com/service/getIpInfo.php?ip=' 
  11.     ); 
  12.  
  13.     foreach ( $ipApi as $k=> $api ) { 
  14.         $res = wp_remote_get ( $api . $ip ); 
  15.         if ( is_object ( $res ) && $k == 0 ) { 
  16.             continue
  17.         } 
  18.         if (! emptyempty ( $res ['body'] )) { 
  19.             $return = json_decode ( $res ['body'], true ); 
  20.             if (! emptyempty ( $return ['city'] )) { 
  21.                 return $return ['city']; 
  22.             } elseif$return ['province'] == '香港' || $return ['province'] == '澳門') { 
  23.                 return $return ['province']; 
  24.             } else { 
  25.                 return $return ['country']; 
  26.             } 
  27.         } 
  28.     } 
  29.     return false; 
  30.  
  31. /** 
  32.  * 獲取當前用戶ip 
  33.  * @return string 
  34.  */ 
  35. function wpgo_get_ip() { 
  36.     if ( getenv ( "HTTP_CLIENT_IP" ) && strcasecmp ( getenv ( "HTTP_CLIENT_IP" ), "unknown" ) ) { 
  37.         $ip = getenv ( "HTTP_CLIENT_IP" ); 
  38.     } elseif (getenv ( "HTTP_X_FORWARDED_FOR" ) && strcasecmp ( getenv ( "HTTP_X_FORWARDED_FOR" ), "unknown" )) { 
  39.         $ip = getenv ( "HTTP_X_FORWARDED_FOR" ); 
  40.     } elseif (getenv ( "REMOTE_ADDR" ) && strcasecmp ( getenv ( "REMOTE_ADDR" ), "unknown" )) { 
  41.         $ip = getenv ( "REMOTE_ADDR" ); 
  42.     } elseif (isset ( $_SERVER ['REMOTE_ADDR'] ) && $_SERVER ['REMOTE_ADDR'] && strcasecmp ( $_SERVER ['REMOTE_ADDR'], "unknown" )) { 
  43.         $ip = $_SERVER ['REMOTE_ADDR']; 
  44.     } 
  45.     if ($_SERVER ['REMOTE_ADDR'] == '127.0.0.1' && $ip == 'unknown') { 
  46.         $ip = 'localhost'
  47.     } 
  48.     return $ip

最重要的一段:最后在你的模板輸出評論之前,獲取城市字段,下面是引用我模板里的代碼,你只能參考判斷方式,具體怎么修改得根據你的模板來修改,代碼如下:

  1. // 如果是管理員回復 
  2. if ( $is_admin ) { 
  3.     $city = '來自管理員的回復'
  4. else { 
  5.     // 兼容以前還沒有城市字段的評論 
  6.     $city = get_comment_meta( $comment->comment_ID, 'city_name', true ); 
  7.     if( !$city ) { 
  8.         $city = wpgo_get_city ( $comment->comment_author_IP ); 
  9.         // 如果api可以正常獲取到城市信息,則插入數據庫 
  10.         if ( $city ) { 
  11.             update_comment_meta( $comment->comment_ID, 'city_name'$city ); 
  12.         } else { 
  13.         // 如果因為異常獲取不到api的信息,返回自定義字符串,留著下次讀取評論時再重新獲取 
  14.             $city = '火星'
  15.         } 
  16.     } 
  17.     $city = "來自{$city}的網友"

顯示評論者瀏覽器類型,將下面代碼放入function.php中,代碼如下:

  1. function getbrowser($Agent
  2.     { 
  3.         if ($Agent == ""
  4.   $Agent = $_SERVER['HTTP_USER_AGENT']; 
  5.         $browser = ''
  6.         $browserver = ''
  7.         if(ereg('Mozilla'$Agent) && ereg('Chrome'$Agent)) 
  8.         { 
  9.             $temp = explode('('$Agent); 
  10.             $Part = $temp[2]; 
  11.             $temp = explode('/'$Part); 
  12.             $browserver = $temp[1]; 
  13.             $temp = explode(' '$browserver); 
  14.             $browserver = $temp[0]; 
  15.             $browser = 'Chrome'
  16.         } 
  17.  if(ereg('Mozilla'$Agent) && ereg('Firefox'$Agent)) 
  18.         { 
  19.             $temp = explode('('$Agent); 
  20.             $Part = $temp[1]; 
  21.             $temp = explode('/'$Part); 
  22.             $browserver = $temp[2]; 
  23.             $temp = explode(' '$browserver); 
  24.             $browserver = $temp[0]; 
  25.            $browser = 'Firefox'
  26.         } 
  27.         if(ereg('Mozilla'$Agent) && ereg('Opera'$Agent))  
  28.         { 
  29.             $temp = explode('('$Agent); 
  30.             $Part = $temp[1]; 
  31.             $temp = explode(')'$Part); 
  32.             $browserver = $temp[1]; 
  33.             $temp = explode(' '$browserver); 
  34.             $browserver = $temp[2]; 
  35.             $browser = 'Opera'
  36.         } 
  37.  if(ereg('Mozilla'$Agent) && ereg('UCBrowser'$Agent))  
  38.         { 
  39.             $temp = strrchr($Agent,'/'); 
  40.             $browserver = substr($temp,1); 
  41.             $browser = 'UC'
  42.         } 
  43.         if(ereg('Mozilla'$Agent) && ereg('MSIE'$Agent)) 
  44.         { 
  45.             $temp = explode('('$Agent); 
  46.             $Part = $temp[1]; 
  47.             $temp = explode(';'$Part); 
  48.             $Part = $temp[1]; 
  49.             $temp = explode(' '$Part); 
  50.             $browserver = $temp[2]; 
  51.             $browser = 'Internet Explorer'
  52.         } 
  53.         //其余瀏覽器按需自己增加 
  54.         if($browser != ''
  55.         { 
  56.             $browseinfo = $browser.' '.$browserver
  57.         }  
  58.         else 
  59.         { 
  60.             $browseinfo = $Agent
  61.         } 
  62.    
  63.         return $browseinfo
  64.     } 

上面的getbrowser()函數返回的是瀏覽器名字+瀏覽器版本,在相關位置調用,讓其顯示出來即可,最后打開wordpress下的wp-includes/comment-template,查找function get_comment_author_link函數,在最后一個return之前加入調用函數,以及顯示對應小圖標功能,代碼如下:

  1. if($comment
  2.  $ua = $comment->comment_agent; 
  3. else 
  4.  $ua = ""
  5. $tmp = getbrowser($ua); 
  6. if($tmp != "") { 
  7.  $br = explode(' ',$tmp); 
  8.  if(stristr($br[0],'chrome')) 
  9.   $brimg = "/chrome.png"
  10.  elseif(stristr($br[0],'firefox')) 
  11.   $brimg = "/firefox.png"
  12.  elseif(stristr($br[0],'opera')) 
  13.   $brimg = "/opera.png"
  14.  elseif(stristr($br[0],'internet')) 
  15.   $brimg = "/ie.png"
  16.  elseif(stristr($br[0],'Safari')) 
  17.   $brimg = "/Safari.png"
  18.  elseif(stristr($br[0],'UC')) 
  19.   $brimg = "/ucweb.png"
  20.  else  
  21.   $brimg = "/anonymouse.png"
  22.  $return .= " <img src='".$brimg."' title='".getbrowser($ua)."' />"

到這里,大功告成,剩下的有時間的話,再把其他瀏覽器補全了,目前只支持chrome,ie,firefox,opera等簡單的識別.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 国产精品一区在线免费观看 | 日韩黄色片在线观看 | 精品国产看高清国产毛片 | 国产成人精品无人区一区 | 久久久久久久免费看 | 亚洲成人伊人 | 国产中出视频 | 视频一区二区三区在线观看 | 在线观看一二区 | 亚洲综合网站 | 免费看成年人网站 | 男女羞羞视频在线免费观看 | 久久亚洲第一 | 一本到免费视频 | 九九视频精品在线 | av电影院在线观看 | 麻豆视频在线免费观看 | 中文字幕在线视频网站 | 久久精品成人免费国产片桃视频 | 精品国产一区三区 | 一级做a爱片性色毛片高清 国产精品色在线网站 | 在线男人天堂 | 日韩毛片一区二区三区 | 欧美成人激情在线 | 成人福利软件 | 伊人yinren22综合网色 | 31freehdxxxx欧美 | 色av综合在线| 精品一区二区久久久久久久网精 | 亚洲国产精品二区 | 91精品国产一区二区在线观看 | 国产精品99久久久久久大便 | 日本成年网 | 中文字幕亚洲一区二区三区 | 高清国产福利 | av日韩一区二区 | 暴力肉体进入hdxxxx0 | 中文字幕电影免费播放 | 羞羞视频2023 | 亚洲性生活视频 | 国产精品久久久久久久久久东京 |