0
이 tutorial을 사용하여 Wordpress 사용자 정의 게시 유형 메타 데이터 상자에서 XML 파일로 데이터를 가져온 다음 데이터베이스에서 마커 설정을 사용하여 Google지도를 만듭니다. 값. 데이터베이스 값에서 Google지도를 추가 할 때 GET 오류가 발생합니다.
나는 폴더를 추가하고 파일 generateMapXml.php지도/generateMapXml.php라는 테마 디렉토리
<?php
// Create a xml doc for map
// Start XML file, create parent node
$dom = new DOMDocument("1.0");
$node = $dom->createElement("markers");
$parnode = $dom->appendChild($node);
header("Content-type: text/xml");
//Query the artist for info & coordinates.
$args = array(
'post_type' => 'artists',
'posts_per_page' => -1
);
$query = new WP_Query($args);
if($query->have_posts()): ?>
<?php while($query->have_posts()): ?>
<?php $query->the_post() ?>
<?php
$mapName = get_the_title();
$mapAddress = rwmb_meta('artists_location');
$mapLat = rwmb_meta('artists_lat');
$mapLong = rwmb_meta('artists_long');
$mapType = rwmb_meta('artists_type');
$node = $dom->createElement("marker");
$newnode = $parnode->appendChild($node);
$newnode->setAttribute("name",$mapName);
$newnode->setAttribute("address",$mapAddress);
$newnode->setAttribute("lat",$mapLat);
$newnode->setAttribute("lng",$mapLong);
$newnode->setAttribute("type",$mapType);
?>
<?php endwhile ?>
<?php endif ?>
<?php echo $dom->saveXML(); ?>
지금까지 너무 좋아. 이 출력됩니다 적절한 XML,하지만 난 튜토리얼 지침에 따라 JQuery와에 파일 내용을 당겨하려고하면
downloadUrl("<?php echo get_template_directory_uri(); ?>/map/generateMapXml.php",
function(data) {
var xml = data.responseXML;
var markers = xml.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
var name = markers[i].getAttribute("name");
var address = markers[i].getAttribute("address");
var type = markers[i].getAttribute("type");
var point = new google.maps.LatLng(
parseFloat(markers[i].getAttribute("lat")),
parseFloat(markers[i].getAttribute("lng")));
var html = "<b>" + name + "</b> <br/>" + address;
var icon = customIcons[type] || {};
var marker = new google.maps.Marker({
map: map,
position: point,
icon: icon.icon,
shadow: icon.shadow
});
bindInfoWindow(marker, map, infoWindow, html);
}
});
}
function downloadUrl(url, callback) {
var request = window.ActiveXObject ?
new ActiveXObject('Microsoft.XMLHTTP') :
new XMLHttpRequest;
request.onreadystatechange = function() {
if (request.readyState == 4) {
request.onreadystatechange = doNothing;
callback(request, request.status);
}
};
request.open('GET', url, true);
request.send(null);
}
나는 500 내부 서버 오류를 얻을 : GET http://localhost/test/number/wp-content/themes/testtheme/map/generateMapXml.php 500 (Internal Server Error) localhost/test/number/:93
downloadUrl localhost/test/number/:93
load localhost/test/number/:49
onload
그것은 마치입니다 파일이 없습니다. 폴더와 파일의 chmod 설정이 777입니다. Wordpress 또는 내 코드의 구문 오류로 인해이 오류가 발생합니까? 지도를 만드는 더 쉬운 방법이 있습니까?
아니요, 파일이 없으면 404 오류가 발생합니다. 500 오류는 코딩 문제를 나타낼 수 있습니다 (서버 구성에 따라 다름). 온전한 검사 : php 파일의 맨 위에 "die ("test ")"를 추가하십시오. 실제로 파일을 실행하고 있는지 여부를 표시합니다. – phil