カテゴリー
log

WordPress : WordPress内のデータ出力と取得

複数のWordPressが動いているサイトで、別のWordPressの内容取得したい時ってどうするのが正解だろう。

例えば、ニュースだけ独立したWPで動いていて、それとは別に全体をWPで管理している。
で、全体管理下のホームにはニュースの最新N件を表示したい時など。
RSSで書きだして取得したりいろいろ方法あるみたいだが、
自分の場合は、以下のようにしてみた。

  • データを書き出したいWP上で保存時に、投稿データを取得してファイルに書き出す
  • 利用するWP側で書き出されたファイルを読み込んで表示

functions.php

function saveAction() {

  //投稿取得、最新5件、公開されているもの
  $posts = new WP_Query( array( 'showposts' => 5, 'post_type' => 'post', 'post_status' => 'publish' ) );

  // serializeしてファイルに書き出し
  file_put_contents('latest-posts.inc', serialize($posts));

}

// 記事保存時に上記のsaveActionを実行
add_action('save_post', 'saveAction');

利用テンプレート

// ファイル読み込んでunserialize
$posts = unserialize(file_get_contents('latest-posts.inc'));