wp rest api カスタム エンドポイントに関する質問があります。リモート サイトのデータベースからのデータを使用して、ローカル サーバーのデータベースを更新しようとしています。データは設定ページ用です。
GET メソッドを使用してカスタム エンド ポイントを正常に開発することに成功し、データベースから get エンド ポイントにデータを取得することにも成功しました。
私の質問は、投稿リクエストに関するものです。リモート サイトからデータを受信し、ローカル データベースを更新するコールバック関数を開発するにはどうすればよいですか。
以下は私のコードです
function register_custom_route(){
register_rest_route( 'silentblast-dashboard/v1', '/getsetting/(?P<id>\d+)', array(
array(
'methods' => 'GET',
'callback' => 'retrieve_settings_data',
),
array(
'methods' => 'POST',
'callback' => 'update_settings_data',
)
));
}
function retrieve_settings_data($data){
$out = get_option( 'buddysettings');
return $out;
}
function update_settings_data( $posts ){
}
次に、これを retrieve_settings_data() 関数に追加しようとしました。
$url(remote url) = 'http://websiteproject.ca/blastbuilder/demo/wp-json/silentblast-dashboard/v1/getsetting/';
$response = wp_remote_get( $url );
$posts = wp_remote_retrieve_body( $response );
$posts = json_decode($posts);
$posts = (array) $posts;
$out = update_option( 'buddy_settings', $posts );
$outi = get_option( 'buddy_settings' );
return $outi ;
リモートデータベースからのデータでローカルデータベースを更新するように機能しましたが、ブラウザでリンクlocalhost/wordpress/wp-json/silentblast-dashboard/v1/getsetting/を更新した後にのみ更新されます。これは、spage の設定を変更した場合を意味します。リモート データベースが更新され、そのデータがエンドポイント remotesite.com/wp-json/silentblast-dashboard/v1/getsetting/ に送信されるようになりました。これで、コードは実際にリモート カスタム ルートから設定データを取得し、ローカル データベースを更新しますが、私ができるのはローカル サイトのカスタム ルートをリロードした後、ブラウザで更新を確認してください。