WordPressのデータベースにオープンデータを登録する

プログラムを書き込む

【1】 username/vccw/wordpress/wp-admin/にディレクトリ(ここではload_csvとする)を作成する。「実際は場所に関係ない」

そのディレクトリ内にcsvファイルを自動投稿するプログラムを書き込むphpファイル(ここではupload.phpとする)と自動投稿したいデータを格納したcsvファイル(ここではdata2.csvとする)を保存する。

【2】 upload.phpには同一階層にあるdata2.csvからデータを読み込みwordpressのカスタムフィールドに投稿するプログラムを書き込む

<?php
require ('../../wp-blog-header.php');

$file = new SplFileObject('data2.csv');

$file->setFlags(SplFileObject::READ_CSV);
foreach ($file as $line) {
    $records[] = $line;
}

for ($i=1 ; $i<count($records);$i++){
    var_dump($records[$i][1]);//[0]から始まるはずだが、今回のcsvファイルの1列目は無意味なので、2列目を確認する

    $post_value = array(
        'post_title' => $records[$i][1], //post title
        'post_content' => '[cft format=0]', //post content
    );

    $insert_id = wp_insert_post($post_value);

    if( $insert_id != 0 ){
        update_post_meta($insert_id, 'name',$records[$i][1]);//ここの[1]はcsvファイルの2列目
        update_post_meta($insert_id, 'address',$records[$i][2] == null ? 0 : $records[$i][2]);

        echo $records[$i][1];//確認のため、なしでもOK

        update_post_meta($insert_id, 'latitude',$records[$i][3] == null ? 0 : $records[$i][3]);
        update_post_meta($insert_id, 'longitude',$records[$i][4] == null ? 0 : $records[$i][4]);
        var_dump('Successfully Uploaded!');
    }
    else{
        var_dump('Error. Insert Id was Zero.');
    }
}
?>

ここまで、先輩のハックノートを参考した。元サイトを添付する。

元サイト:wordpressにcsvファイルを読み込んで自動投稿する方法

日本語が表示されない時

csvファイルの中に日本語があれば、文字化けして、うまく自動投稿していけないの可能性が高い。 文字化けの原因はファイルとPHPの文字コードの違い

  • ファイル :Shift-JIS
  • PHP   :UTF-8

その解決方法は以下のサイトを参考してください。

元サイト:CSVファイルが文字化けした場合の対処方法

保存した時、拡張子を注意してください。

PHPとC言語の違い

一番最初はC言語を触れたら、プログラミングを実行する時、コンパイルしなければならないのイメジーかもしれない。

phpだったら、ただブラウザにコピーしても良い。

今回の場合:

http://username.local/wp-admin/load_csv/upload.php

実行した結果を添付する。