我需要通过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);
}
}
答案 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;