Headless Next.js WordPress `站点地址`更改中断保存草稿

ukqbszuj  于 2023-03-22  发布在  WordPress
关注(0)|答案(1)|浏览(153)

我目前正在使用Vercel's示例构建一个无头Next.js WordPress应用程序。
目前在本地环境中测试http://localhost:3000的Next.js和http://wordpress.test的WordPress。到目前为止,它的工作相对较好。我更新了WordPress的预览链接(preview_post_link),以匹配Next.js应用程序中的预览API端点,并更新了WordPress的site url,以指向我的本地Next.js环境。
一旦site url更新了,visit siteview post/page按钮现在就可以转到我的Next.js应用程序。
然而,我遇到的问题是,它似乎也更新了save draft按钮。所以现在当我试图保存草稿时,它试图转到http://localhost:3000/wp-json/wp/v2/posts/38?_locale=user,我的Next.js应用程序,而不是WordPress。显然,因为这个链接在Next.js中不做任何事情,所以它抛出错误。
这是WordPress的一个bug吗?还是我设置的无头URL不正确?
设置

  • WordPress版本6.1.1
  • 建立我自己的主题

functions.php

<?php

add_filter( 'preview_post_link', 'the_preview_fix' );

function the_preview_fix($post) {
    $post = get_post();

    return home_url() . "/api/preview?secret=secret&id={$post->ID}";
}

插件

  • WPgraphQl版本1.14.0
  • WPGraphQL JWT身份验证版本0.4.0

WordPress设置(其他设置未更改)

kknvjkwl

kknvjkwl1#

我想通了!经过一些挖掘,与一些指导从ChatGPT我发现这个post修复正是我所需要的.下面是代码的任何人的情况下断开的链接.
我不知道这将如何影响其他任何事情,因为WordPress开发人员选择REST API路由指向前端而不是后端系统一定有原因。然而,就我的目的而言,这适合我现在。

// change WordPress API URL to HOME URL
add_filter('rest_url', 'wptips_home_url_as_api_url');
function wptips_home_url_as_api_url($url) {
    $url = str_replace(home_url(),site_url() , $url);
    return $url;
}

相关问题