Одна из востребованных технологий — определение города по IP, с последующим выводом определенной информации. Начнем с простейшего, выведем город по IP.
<?php function get_ip_info($ip) { $postData = " <ipquery> <fields> <all/> </fields> <ip-list> <ip>$ip</ip> </ip-list> </ipquery> "; $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'http://194.85.91.253:8090/geo/geo.html'); curl_setopt($curl, CURLOPT_POSTFIELDS, $postData); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $responseXml = curl_exec($curl); curl_close($curl); if (substr($responseXml, 0, 5) == '<?xml') { $ipinfo = new SimpleXMLElement($responseXml); return $ipinfo->ip; } return false; } // пример использования $ipinfo = get_ip_info($_SERVER['REMOTE_ADDR']); echo $ipinfo->city; // город ?>
Код вставлять туда, где нужен вывод города
Альтернативный способ:
подключаем API Яндекс Карты
<script src="http://api-maps.yandex.ru/2.0-stable/?load=package.standard&lang=ru-RU" type="text/javascript"></script>
скрипт
<script type="text/javascript"> window.onload = function () { jQuery("#user-city").text(ymaps.geolocation.city); } </script>
Там где надо вывести
<p id="user-city"> </p>
В обоих решениях наблюдаются проблемы в сочетании с плагином WP Super Cache