CSVから自動で利用したいオープンデータを投稿する方法

【1】Custom Field Templateの設定

下記のように項目を設定した。 []内は keyとなる。

[fee1]
label = 料金/時間(必須)
type = textfield
size = 200
class = number required


[fee2]
label = その他料金
type =  textfield
size = 200

[open]
label = 開始時間
type = textfield
size = 20

[close]
label = 終了時間
type = textfield
size = 20

【2】csvから欲しいデータを入れたい場所に入れる方法

<?php
require('../../wp-blog-header.php');
$file = new SplFileObject('data.csv');
$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $line) {
    $records[] = $line;
}

for ($i=1 ; $i<count($records);$i++){
    //var_dump($records[$i][0]);

    $post_value = array(
        'post_title' => $records[$i][1], //post title
        'post_content' => 'hi.there', //post content
        'post_status' => 'publish' // 公開ステータス。
    );

    $insert_id = wp_insert_post($post_value);

    if( $insert_id != 0 ){
        update_post_meta($insert_id, 'fee1',$records[$i][15]);
        update_post_meta($insert_id, 'fee2',$records[$i][16]);
        update_post_meta($insert_id, 'open',$records[$i][9]);
        update_post_meta($insert_id, 'close',$records[$i][10]);
        //var_dump('Successfully Uploaded!');
    }
    else{
        var_dump('Error. Insert Id was Zero.');
    }
}

3行目で利用するCSVファイル(オープンデータ)を取り込む。

Custom Field Templateに欲しい情報を自動で埋め込むには、update_post_meta関数を利用する必要がある。

使い方

<?php update_post_meta( $post_id, $meta_key, $meta_value, $prev_value ); ?> 

$post_id (整数) (必須) 更新したいカスタムフィールドを持つ投稿の ID。 初期値: なし

$meta_key (文字列) (必須) 更新したいカスタムフィールドのキー。これは生の値でなければなりません(データベースクエリ時は無害化されます)。 初期値: なし

$meta_value (mixed) (必須) カスタムフィールドの新しい値。配列を与えるとシリアル化されます。これは生の値でなければなりません(データベースクエリ時は無害化されます)。 初期値: なし

$meta_keyにはCustom Field Templateで設定したkey(fee1,close,など)を指定する。

$meta_valueには、対応するkeyに入れたい値を入れれば、自動的にwordpressに投稿される。