#追記(現在のコード)
php
1#functions.php 2add_action( "add_post_meta", 'callApiBeforePosting', acmId, {$newAcmId} );
#分からないこと
- functions.phpに記載することは間違っていないのか?
add_action('save_post', 'call_api_before_posting');
は書き方として間違っていないのか?- add_actionの下部に
call_api_before_posting関数
を定義すれば良いのか。
#可能であれば、聞きたいこと
- 既存のテーブルに既にAPIをコールして必要な値が保存されている場合、スキップし、そうでない場合はAPIをコールするという仕組みはどのようにして書けば良いのか。
#なぜ開発するのか
全記事のカスタムフィールドに保存されているIDを取得して、そのIDを元にAPIをコールするバッチ処理を別途開発済みです。そのバッチ処理は1日に1回動く仕組みです。しかし、記事が投稿されて、その記事のカスタムフィールドに新しいIDが含まれていた場合、バッチ処理されるまでAPIがコールされていない状態です。そこで、バッチ処理がされるのを待つのではなく、記事投稿時に個別でAPIをコールする機能が必要だったので、開発しています。
#既存のコード
// 記事投稿前に既存のテーブルをチェックし、既にAPIをコールした値が保存されていたらスキップ。そうでない場合はAPIをコールする add_action('save_post', 'call_api_before_posting'); function call_api_before_posting() { //カスタムフィールドからacmIdを取得 getAcmIds($wpdb); // accommodationsテーブルに当該施設は存在するか調べる $newAcmIds = $wpdb->get_results( " IF NOT EXISTS( SELECT acm_id FROM $wpdb->accommodations ) " ) }
コードは途中です。
#追記
php
1do_action('save_post', 'callApiBeforePosting'); 2function callApiBeforePosting() { 3 include_once('wp-content/themes/travelify/display-name-and-location.php'); 4}
回答1件
あなたの回答
tips
プレビュー