我正在 apache2 Debian 服务器上运行常规 WordPress 实例。对于前端,我使用带有 WordPress 后端 REST-API 的 React Spa。 现在,我更改了前端的 URL,将其与 WordPress 后端分开:
/** SITE SETTINGS
*/
define('WP_HOME','https://frontend.foo.bar');
define('WP_SITEURL','https://backend.foo.bar');
问题是,其余的 API 调用现在是从 frontend.foo.bar/wp-json/... 例如,当我尝试更新现有帖子时,我收到了消息:
“更新失败。您可能处于离线状态。”
是否可以以某种方式修改 API 域? 有一个
rest_url_prefix
但它只改变域后面的部分。
将此代码添加到主题的functions.php中。它将执行类似的前缀替换,但会将您的 home_url 完全替换为 siteurl,并且不会导致错误 “更新失败。您可能离线”
function custom_rest_url( $url ) {
$new_url = trailingslashit( get_option( 'siteurl' ) ) . 'wp-json';
$url = str_replace( home_url( '/wp-json' ), $new_url, $url );
return $url;
}
add_filter( 'rest_url', 'custom_rest_url' );