php
1global $wpdb; 2$ids = getAcmIds($wpdb); 3foreach ($ids as $id) { 4 $acmId = $id->meta_value; 5 // カスタムフィールドに入力された値が8桁以外の場合 -> スキップ 6 if(preg_match('/^([0-9]{8})$/', $acmId) ) { 7 $json = getJsonData($acmId); 8 } else { 9 continue; 10 } 11 $acmData = getAcmData($json, $acmId); 12 insertDataToAccommodationsTable($acmData, $wpdb); 13 14 if (!($acmData === null) ) { 15 insertDataToTermsTable($acmData, $wpdb); 16 insertDataToTermTaxonomyTable($acmData, $wpdb); 17 insertDataToTermRelationships($id, $acmData, $wpdb); 18 } else { 19 continue; 20 } 21} 22// 処理完了 -> Slackに通知 23notifySlackOnCompletionOfBatchProcessing();
#やりたいこと
- foreachが終了したら、一番最後の行に書いてあるnotifySlackOnCompletionOfBatchProcessing()が動くようにしたい
#やってみたこと
下記の記事を参考に書いてみたが、最初と最後だけ処理なので出来なかった。
http://qiita.com/potetopote_/items/2f199099566e6a0e01a1
#作業途中なこと
- 配列が空の場合とそうでない場合を分けて処理
#getAcmIds
php
1function getAcmIds($wpdb) { 2 $ids = $wpdb->get_results( 3 " 4 SELECT DISTINCT post_id, meta_value 5 FROM $wpdb->postmeta 6 WHERE meta_key = 'acmId' 7 " 8 ); 9 return $ids; 10}
回答1件
あなたの回答
tips
プレビュー