Wordpress Wp-restapi自定义端点

Wordpress Wp-restapi自定义端点,wordpress,wordpress-rest-api,Wordpress,Wordpress Rest Api,我正在尝试添加一个自定义端点到我的wp-restapi的最新版本。我已经有了这个,但是最后有slug参数的那个不起作用。。有人知道为什么吗。。如果有人能帮忙,那就太好了 register_rest_route( 'wp/v2', '/guestmix', array( array( 'methods' => WP_REST_Server::READABLE, 'callback' =&g

我正在尝试添加一个自定义端点到我的wp-restapi的最新版本。我已经有了这个,但是最后有slug参数的那个不起作用。。有人知道为什么吗。。如果有人能帮忙,那就太好了

     register_rest_route( 'wp/v2', '/guestmix', array(
        array(
            'methods'         => WP_REST_Server::READABLE,
            'callback'        => array( $this, 'get_guestmixes' )
        ),
        'schema' => array( $this, 'get_public_item_schema' )
    ) );

    register_rest_route( 'wp/v2', '/guestmix/(?P<slug>\d+)', array(
        'methods' => 'GET',
        'callback' => 'get_guestmix'
    ) );
register\u rest\u route('wp/v2','/guestmix',数组(
排列(
'methods'=>WP\u REST\u Server::READABLE,
'callback'=>array($this'get_guestmixes')
),
'schema'=>array($this'get\u public\u item\u schema'))
) );
注册rest路由('wp/v2','/guestmix/(?P\d+),数组(
'方法'=>'获取',
'callback'=>'get_guestmix'
) );

我猜这是因为您对regex
使用了
d
元字符(?p\d+)
这是数字的意思,请尝试改用
s
。 代码应该是这样的

register_rest_route( 'wp/v2', '/guestmix/(?P<slug>\S+)', array(
    'methods' => 'GET',
    'callback' => 'get_guestmix'
) );
register_rest_route('wp/v2','/guestmix/(?P\S+),数组(
'方法'=>'获取',
'callback'=>'get_guestmix'
) );

这是供参考的备忘单

上面的答案对我来说很有用,尽管根据2019年的要点,我实现的正则表达式略有不同,涵盖了不同的url/slug结构场景

register_rest_route( 'wp/v2', '/guestmix/(?P<slug>[a-zA-Z0-9-]+)', array(
    'methods' => 'GET',
    'callback' => 'get_guestmix'
) );
register_rest_route('wp/v2','/guestmix/(?P[a-zA-Z0-9-]+),数组(
'方法'=>'获取',
'callback'=>'get_guestmix'
) );

希望这能有所帮助

我一直在寻找WP rest路由的备忘单,现在偶然发现了这个页面(可能是因为我用edge来烧掉h而不是chrome),但最终我有机会找到我的url正则表达式的解决方案,我对正则表达式恨之入骨(尽管我时不时会有“哇,太令人印象深刻了”的想法)我的问题是,我的url需要进行url编码,并且有19个部分——是的,我知道……如果Wordpress文档能够解释我们可以使用哪些元字符就好了。