【问题标题】:WordPress REST API doesn't work on custom wordpress pathWordPress REST API 不适用于自定义 wordpress 路径
【发布时间】: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/ 怎么办?

提前感谢大家!

【问题讨论】:

    标签: javascript wordpress rest wordpress-theming wordpress-gutenberg


    【解决方案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'
    

    【讨论】:

      猜你喜欢
      • 2014-05-06
      • 1970-01-01
      • 2021-10-31
      • 2017-09-23
      • 1970-01-01
      • 1970-01-01
      • 2020-09-22
      • 2017-10-29
      • 1970-01-01
      相关资源
      最近更新 更多