基本上,我爲自定義帖子類型'dealer'設置了一個WPAlchemy元組,並且我想生成一個XML文件,其中包含來自所有經銷商帖子的格式化元數據,以便數據可以用於谷歌地圖上的標記。下面是我在我functions.php文件到目前爲止基於斷Write to XML file using fopen in Wordpress在頁面加載時創建外部XML文件
<?php function markers_xml() {
if ($_POST['post_type'] == 'es_dealer') {
$xml = new SimpleXMLElement('<xml/>');
$markers = get_posts('post_type=es_dealer&posts_per_page=-1');
$xml->addChild('markers');
foreach($markers as $i=>$marker) {
$name = get_the_title($marker->ID);
$lat = get_post_meta($marker->ID, 'lat', true);
$lng = get_post_meta($marker->ID, 'long', true);
$xml->markers->addChild('marker');
$xml->markers->marker[$i]->addAttribute('name', $name);
$xml->markers->marker[$i]->addAttribute('lat', $lat);
$xml->markers->marker[$i]->addAttribute('lng', $lng);
}
$file = 'http://encode-design.com/wp-content/uploads/test.xml';
$open = fopen($file, 'w') or die ("File cannot be opened.");
fwrite($open, $xml->asXML());
fclose($open);
}
}
add_action('save_post', 'markers_xml'); ?>
當我節省了經銷商後我沒有得到一個消息,說「文件無法打開。」但是xml文件也沒有改變。我已經將xml文件和uploads文件夾權限設置爲777,並且在我的服務器上啓用了fopen。我錯過了什麼?任何幫助將非常感激!
如果您直接將文件名傳遞給asXML,您可以跳過fopen和fwrite,如:'$ xml-> asXML($ file);'。不確定它會解決問題,但它會以解決方案的方式去除額外的一層。 – Anthony