WordPress 플러그인을 개발할 때는 종종 일출 및 일몰 시간과 같은 사용자의 지리적 위치를 기반으로 동적 컨텐츠를 제공해야합니다. PHP의 자체 DATE_SUNSET () 함수는 일몰 시간을 쉽게 계산할 수 있습니다. 그러나 사용자의 "로컬"일몰 시간을 실시간으로 표시하려면 일부 포지셔닝 기술이 필요합니다.
이 기사를 사용하면 WordPress 플러그인에 Date_Sunset () 을 임베드하고 일몰 시간을 동적으로 표시 할 수 있습니다.
PHP는 서버 측에서 실행되며 사용자 장치의 지리적 위치에 직접 액세스 할 수 없습니다. 따라서 사용자의 위도와 경도를 얻으려면 JavaScript를 사용하고 AJAX를 통해 정보를 서버로 전달해야합니다.
// 플러그인 마스터 파일 또는 특정 PHP 파일에 추가하십시오
function m66net_enqueue_location_script() {
wp_enqueue_script('m66net-location-script', 'https://m66.net/js/location.js', array('jquery'), null, true);
// 통과하다 wp_localize_script 묶음 AJAX URL 전달 JS
wp_localize_script('m66net-location-script', 'm66net_ajax_object', array(
'ajax_url' => admin_url('admin-ajax.php')
));
}
add_action('wp_enqueue_scripts', 'm66net_enqueue_location_script');
location.js 파일의 예 ( https://m66.net/js/location.js 에 저장) :
jQuery(document).ready(function($){
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$.post(m66net_ajax_object.ajax_url, {
action: 'm66net_send_location',
latitude: position.coords.latitude,
longitude: position.coords.longitude
}, function(response) {
$('#m66net-sunset-time').html(response);
});
});
} else {
$('#m66net-sunset-time').html('위치 정보를 얻을 수 없습니다');
}
});
다음으로 WordPress에서 사용자 지리적 위치 정보를 처리하고 일몰 시간을 반환하는 AJAX 인터페이스를 만듭니다.
function m66net_calculate_sunset() {
if (isset($_POST['latitude']) && isset($_POST['longitude'])) {
$latitude = floatval($_POST['latitude']);
$longitude = floatval($_POST['longitude']);
$timestamp = time();
$sunset = date_sunset($timestamp, SUNFUNCS_RET_STRING, $latitude, $longitude, 90.583333, date('Z') / 3600);
echo '당신의 현지 일몰 시간입니다:' . $sunset;
} else {
echo '일몰 시간을 계산할 수 없습니다';
}
wp_die(); // 중요한:종료 AJAX 거래하십시오
}
add_action('wp_ajax_m66net_send_location', 'm66net_calculate_sunset');
add_action('wp_ajax_nopriv_m66net_send_location', 'm66net_calculate_sunset');
설명하자 :
sunfuncs_ret_string let date_sunset ()은 19:21 과 같은 형식의 시간 문자열을 반환합니다.
90.583333 은 표준 해수면 공기 압력 각도이며 일반적으로 기본적으로 사용됩니다.
날짜 ( 'z') / 3600은 서버의 시간대에 따라 수정됩니다.
마지막으로 일몰 시간 (예 : 기사, 페이지 또는 가제트)을 표시 해야하는 HTML 조각을 추가하십시오.
<div id="m66net-sunset-time">일몰 시간을 얻습니다...</div>
사용자가 페이지를 방문하는 한 JavaScript가 트리거되고 사용자의 위치가 자동으로 감지되고 정확한 일몰 시간이 표시됩니다!
HTTPS를 지원하려면 M66.NET 리소스도 HTTPS로 이동하십시오. 그렇지 않으면 브라우저가 혼합 컨텐츠 요청을 차단합니다.
date_sunset () 의 결과는 서버 시간 표준입니다. 플러그인이 다른 서버 영역에 적응하려면보다 세련된 시간대 처리가 필요합니다.
사용자가 위치 정보 공유를 거부 할 때와 같이 플러그인에 합리적인 오류 프롬프트를 추가하십시오.