1

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/ に送信されるようになりました。これで、コードは実際にリモート カスタム ルートから設定データを取得し、ローカル データベースを更新しますが、私ができるのはローカル サイトのカスタム ルートをリロードした後、ブラウザで更新を確認してください。

4

0 に答える 0