プログラムを書き込む
【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
その解決方法は以下のサイトを参考してください。
保存した時、拡張子を注意してください。
PHPとC言語の違い
一番最初はC言語を触れたら、プログラミングを実行する時、コンパイルしなければならないのイメジーかもしれない。
phpだったら、ただブラウザにコピーしても良い。
今回の場合:
http://username.local/wp-admin/load_csv/upload.php
実行した結果を添付する。