Одна из востребованных технологий — определение города по 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

