REST API: Support generating comment up links to custom posts controllers.
The comments controller now uses the `rest_get_route_for_post` function introduced in WordPress 5.5 to generate the link. This function is filterable to allow for custom controllers to properly define their REST API route. Props dsifford, TimothyBlynJacobs. Fixes #44152. git-svn-id: https://develop.svn.wordpress.org/trunk@49299 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
9cf46a7348
commit
b8cdf1be50
@ -1159,14 +1159,12 @@ class WP_REST_Comments_Controller extends WP_REST_Controller {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ( 0 !== (int) $comment->comment_post_ID ) {
|
if ( 0 !== (int) $comment->comment_post_ID ) {
|
||||||
$post = get_post( $comment->comment_post_ID );
|
$post = get_post( $comment->comment_post_ID );
|
||||||
|
$post_route = rest_get_route_for_post( $post );
|
||||||
if ( ! empty( $post->ID ) ) {
|
|
||||||
$obj = get_post_type_object( $post->post_type );
|
|
||||||
$base = ! empty( $obj->rest_base ) ? $obj->rest_base : $obj->name;
|
|
||||||
|
|
||||||
|
if ( ! empty( $post->ID ) && $post_route ) {
|
||||||
$links['up'] = array(
|
$links['up'] = array(
|
||||||
'href' => rest_url( 'wp/v2/' . $base . '/' . $comment->comment_post_ID ),
|
'href' => rest_url( $post_route ),
|
||||||
'embeddable' => true,
|
'embeddable' => true,
|
||||||
'post_type' => $post->post_type,
|
'post_type' => $post->post_type,
|
||||||
);
|
);
|
||||||
|
@ -3254,6 +3254,10 @@ class WP_Test_REST_Comments_Controller extends WP_Test_REST_Controller_Testcase
|
|||||||
array_keys( $links )
|
array_keys( $links )
|
||||||
);
|
);
|
||||||
|
|
||||||
|
if ( $comment->comment_post_ID ) {
|
||||||
|
$this->assertEquals( rest_url( '/wp/v2/posts/' . $comment->comment_post_ID ), $links['up'][0]['href'] );
|
||||||
|
}
|
||||||
|
|
||||||
if ( 'edit' === $context ) {
|
if ( 'edit' === $context ) {
|
||||||
$this->assertSame( $comment->comment_author_email, $data['author_email'] );
|
$this->assertSame( $comment->comment_author_email, $data['author_email'] );
|
||||||
$this->assertSame( $comment->comment_author_IP, $data['author_ip'] );
|
$this->assertSame( $comment->comment_author_IP, $data['author_ip'] );
|
||||||
|
Loading…
Reference in New Issue
Block a user