Php 如何在wordpress中获取用户位置

Php 如何在wordpress中获取用户位置,php,wordpress,Php,Wordpress,我试图从IP地址显示用户区域和国家,但我无法获得它。每次我将IP地址传递给不同的API时,请输入有效的IP地址。我正在使用functions.php中的短代码来执行此操作,我正在访问footer.php中的短代码,但它不起作用 这是我在functions.php中编写的代码 function user_region() { $ip = "27.255.58.21"; $http = wp_remote_get( 'https://ipinfo.io/{$ip}/js

我试图从IP地址显示用户区域和国家,但我无法获得它。每次我将IP地址传递给不同的API时,请输入有效的IP地址。我正在使用functions.php中的短代码来执行此操作,我正在访问footer.php中的短代码,但它不起作用

这是我在functions.php中编写的代码

function user_region() { 
       $ip = "27.255.58.21";
       $http = wp_remote_get( 'https://ipinfo.io/{$ip}/json' );
       $data = wp_remote_retrieve_body( $http );
       $result=print_r($data);


  return '<div class="user-region">'.$data->country_name.'</div>';  

    }  

add_shortcode("get-user-region", "user_region"); 
function user_region(){
$ip=“27.255.58.21”;
$http=wp\u remote\u get('https://ipinfo.io/{$ip}/json');
$data=wp\u remote\u retrieve\u body($http);
$result=打印(数据);
返回“”。$data->国家/地区名称。“;
}  
添加_短代码(“获取用户区域”、“用户_区域”);
这就是我在页脚上看到的


您试图使用单引号进行变量插值。那是行不通的。将单引号替换为双引号。使用双引号允许变量扩展,但单引号不允许

试试这个:

$http = wp_remote_get("https://ipinfo.io/{$ip}/json");
或者,如果您坚持使用单引号:

$http = wp_remote_get('https://ipinfo.io/' . $ip . '/json');

如果您可以使用其他api来回答问题,我是否可以尝试使用其他api,因为这表明我已经超出了使用任何api的限制。变量插值是一种语言特性。你没有正确地使用它,因此它不适合你。使用双引号.Array([headers]=>Requests\u Utility\u caseinsensitiveedicationary Object([data:protected]=>Array([server]=>nginx[date]=>Fri,2019年2月15日20:37:17 GMT[content type]=>text/html))[body]=>403禁止的nginx[response]=>Array([code]=>403[message]=>禁止的)[cookies]=>Array()[filename]=>[http\u response]=>WP\u http\u Requests\u response Object([response:protected]=>Requests\u response Object([body]=>403禁止)请不要在评论中发布代码。使用堆栈片段中格式化的代码编辑/更新原始问题。