wordpressで生成したxmlを別ページで読み込む

電脳備忘録

wordpressの記事情報の一部をxmlで出力して、wordpressの管理外のサイトにてxmlを読み込んで表示させる仕組みを構築したときの備忘録。
wordpressでxmlを生成する方法は「記事情報をXMLで出力してWordPressの入ってないサイトに表示する方法」を参考にさせていただきました。で、wordpressでxmlを生成したページをsimpleXNLで読み込ませて表示ようとしたのですが何も表示されません。真っ白いままでエラーが表示されるわけでもないので、とりあえずphpファイルに直接エラーを表示されるコードを書いて原因を探ることにしました。

<?php
ini_set( 'display_errors', 1 );
?>

そうすると下記のようなエラーが表示されました。どうやら先頭におかしな文字があると怒られているらしいです...。

 XML declaration allowed only at the start of the document in

wordpressから生成されたxmlを確認してみると確かに1行目が空白になっていました。そんな時は「ob_end_clean」関数を使うことで対応できるようです。

出力用バッファの内容を消去し、出力のバッファリングをオフにします。

ob_end_clean

修正前

<?php /* Template Name: XML */ ?>
<?php echo "<?xml version='1.0' encoding='UTF-8' ?>"; ?>

修正後

<?php /* Template Name: XML */ ?>
<?php ob_end_clean(); ?>
<?php echo "<?xml version='1.0' encoding='UTF-8' ?>"; ?>

これでxmlファイルを読み込むことができるようになりましたとさ・‥。

広告

ブログの維持費に充てるでございます・・・。