WordPress REST API 不适用于自定义 wordpress 路径
Posted
技术标签:
【中文标题】WordPress REST API 不适用于自定义 wordpress 路径【英文标题】:WordPress REST API doesn't work on custom wordpress path 【发布时间】:2022-01-05 07:47:20 【问题描述】:我正在开发我的第一个 wordpress 自定义主题和自定义 Gutenberg 块。到目前为止,它适用于我的设置。但担心用户何时将其安装在不同的路径上。 我正在像这样进行 REST API 调用:
function( props )
if (! props.attributes.categories )
wp.apiFetch(
url: '/wordpress/wp-json/wp/v2/categories'
).then(categories =>
props.setAttributes (
categories: categories
)
);
我已经使用 MAMP 在自定义路径 (/wordpress) 而不是主文件夹上本地安装了 wordpress。所以http://localhost/wordpress/
。我的问题是,API URL url: '/wordpress/wp-json/wp/v2/categories'
有效,因为我已经指定了确切的路径,在通常的路径前面添加了 /wordpress/
,但是我怎样才能使它动态,以便它适用于用户安装他们的 wordpress 网站的任何路径去?
只要在 index 文件夹中安装了 wordpress,任何用户都可以使用 url: '/wp-json/wp/v2/categories'
。但是,如果用户决定将我的主题和插件安装在自定义路径下的 wordpress 网站上,例如 theme.com/wordpress-subfolder/
怎么办?
提前感谢大家!
【问题讨论】:
【参考方案1】:使用 get_rest_url() 的值本地化您的脚本。
wp_register_script( 'my-script' , 'path/to/the-script.js' );
wp_localize_script( 'my_script' , 'wpRestApi' , array( 'url' => get_rest_url() ) );
wp_enqueue_script( 'my_script' );
在js中可以通过wpRestApi.url访问url
wpRestApi.url + 'wp/v2/categories'
【讨论】:
以上是关于WordPress REST API 不适用于自定义 wordpress 路径的主要内容,如果未能解决你的问题,请参考以下文章
Firebase 云消息传递 - PHP Rest API 不适用于 iOS