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’));

WordPress : 管理画面の一覧にカスタムフィールドの内容表示

WordPressにカスタムフィードの値を表示する。
以下の場合は、Advanced Custom Fieldsでのギャラリーで登録した最初の一枚目の画像を表示。

// 管理画面にサムネール表示追加 ——————————
function manage_posts_columns($columns) {
$columns[‘Thumb’] = “Thumbnail”; // `Thumbnail`っていうのが列に表示される名称
return $columns;
}

function add_column($column_name, $post_id) {
if( $column_name == ‘Thumb’ ) { // $column[‘Thumb’]の時に以下
$sThumb = get_field(‘gallery’, $post_id); // カスタムフィールド `gallery` の内容を取得
$sThumbTag = ‘‘; // ACFのギャラリーの内容で最初の1枚目のサムネールを取得
}

if ( isset($sThumbTag) && $sThumbTag ) {
echo $sThumbTag;
}

}

// 管理画面の投稿一覧表示の時に上記で定義したfunctionを実行する
add_filter( ‘manage_posts_columns’, ‘manage_posts_columns’ );
add_action( ‘manage_posts_custom_column’, ‘add_column’, 10, 2 );