首先,有一个default endpoint for retrieving pages, 但我猜你是故意不使用它的?
现在,您的代码存在以下问题:
那$request->get_params()
获取所有参数,而不是单个参数。因此,对于单个参数,应该使用$request->get_param()
.
$slug = $request->get_params(\'slug\'); // incorrect
$slug = $request->get_param( \'slug\' ); // correct
错误
500
可能是因为没有名为
get_page_meta
在WordPress中。你是想用
get_post_meta
?
$page_meta = get_page_meta( $page->ID ); // incorrect
$page_meta = get_post_meta( $page->ID ); // correct
// or do you have a custom get_page_meta() function?
正如我在你的另一个问题中提到的,正确的数组键是
methods
而不是
method
. 对于完全相同的回调(和参数),可以提供方法数组。(见以下示例)
我猜你错了404
因为您试图向自定义端点发出POST请求,在这种情况下,由于您尚未为POST请求添加端点,因此可能会出现错误。添加它,就像下面的例子一样here 或参见以下内容:
register_rest_route( \'theme/v1\', \'/pages\', array(
array(
\'methods\' => \'GET\',
\'callback\' => array( $this, \'get_page_data\' ),
),
array(
\'methods\' => \'POST\',
\'callback\' => array( $this, \'get_page_data\' ),
),
) );
// or provide an array of methods:
register_rest_route( \'theme/v1\', \'/pages\', array(
\'methods\' => [ \'GET\', \'POST\' ],
\'callback\' => array( $this, \'get_page_data\' ),
) );