使用Wordpress for Google Maps生成XML文件时无法获取内容

时间:2012-03-16 10:14:49

标签: php xml wordpress google-maps-api-3

我需要通过Wordpress生成一个XML文件,用于在Google Map上生成标记。 我修改了一个我在这里找到的函数:Write to XML file using fopen in Wordpress

只要修改帖子,该函数就会运行。

地图方面的工作正常。我可以生成一个XML文件,其中包含每个条目的标题,经度和纬度,并且它们可以在地图上正确绘制。

但是我似乎无法获得我希望用于地址的帖子内容。我甚至无法获得内容以回应测试。我试过在与XMl冲突的情况下对html进行编码,但没有。似乎没有得到任何内容。是的,我已经确定这些帖子有内容,尽管我对这个想法很开放我可能错过了一些简单的内容:-p

我的功能如下。

add_action( 'save_post', 'markers_xml' );

function markers_xml(){

if ($_POST['post_type'] == 'places-to-eat') 
{
  $xml = new SimpleXMLElement('<xml/>');
  $markers = get_posts( array( 'post_type'=>'places-to-eat', 'numberposts'=>-1 ) );

  $xml->addChild('markers');

  foreach($markers as $i=>$marker){
    $name = get_the_title($marker->ID);
    $address = get_the_content($marker->ID);
    $address = htmlentities($address);
    $lat = get_post_meta($marker->ID, 'the-lat', true);
    $lng = get_post_meta($marker->ID, 'the-lng', true);  


 $xml->markers->addChild('marker');
 $xml->markers->marker[$i]->addChild('name', $name);
 $xml->markers->marker[$i]->addChild('address', $address);
 $xml->markers->marker[$i]->addChild('lat', $lat);
 $xml->markers->marker[$i]->addChild('lng', $lng);
}

 $file = '/public_html/wp-content/uploads/test.xml';
 $open = fopen($file, 'w') or die ("File cannot be opened.");
 fwrite($open, $xml->asXML());
 fclose($open); 
}

} 

1 个答案:

答案 0 :(得分:0)

标题和内容已通过get_posts()提供给您。无需使用get_the_title()或get_the_content()。 get_posts()的返回值在get_post() documentation中说明。这会显示可用的数据。

试试这个。

foreach($markers as $i=>$marker){
//replace this 
//$name = get_the_title($marker->ID);
//with this
$name = $marker->post_title;
//replace this
//$address = get_the_content($marker->ID);
//with this
$address = $marker->post_content;