我有一个关于 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/ 现在代码实际上从远程自定义路由获取设置数据并更新本地数据库但我只能为我的本地站点重新加载自定义路由后,在浏览器中查看更新。