2012-03-16 4 views
0

Google Mapでマーカーを生成するためにWordpressからXMLファイルを生成する必要がありました。 私はここで見つけた関数を変更しました:Write to XML file using fopen in WordpressGoogleマップ用のWordpressでXMLファイルを生成するときにコンテンツを取得するときに問題が発生する

投稿は変更されたときに必ず実行されます。

地図の側面がうまくいきます。私は各エントリのタイトルと経度と緯度を持つ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

タイトルとコンテンツは、すでに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; 
関連する問題