rest_get_route_for_post()
云策文档标注
概述
rest_get_route_for_post() 函数用于获取文章的 REST API 路由路径。它接受文章 ID 或 WP_Post 对象作为参数,返回带前导斜杠的路由字符串,若无路由则返回空字符串。
关键要点
- 参数:$post(必需),可以是整数(文章 ID)或 WP_Post 对象。
- 返回值:字符串,表示文章的路由路径(如 /wp/v2/posts/123),若无路由则返回空字符串。
- 内部逻辑:通过 get_post() 获取文章对象,调用 rest_get_route_for_post_type_items() 获取文章类型的路由,然后拼接文章 ID。
- 过滤器:提供 rest_route_for_post 过滤器,允许开发者自定义路由路径。
- 相关函数:rest_get_route_for_post_type_items()、apply_filters()、get_post()。
- 引入版本:WordPress 5.5.0。
代码示例
function rest_get_route_for_post( $post ) {
$post = get_post( $post );
if ( ! $post instanceof WP_Post ) {
return '';
}
$post_type_route = rest_get_route_for_post_type_items( $post->post_type );
if ( ! $post_type_route ) {
return '';
}
$route = sprintf( '%s/%d', $post_type_route, $post->ID );
/**
* Filters the REST API route for a post.
*
* @since 5.5.0
*
* @param string $route The route path.
* @param WP_Post $post The post object.
*/
return apply_filters( 'rest_route_for_post', $route, $post );
}
原文内容
Gets the REST API route for a post.
Parameters
$postint|WP_Postrequired-
Post ID or post object.
Source
function rest_get_route_for_post( $post ) {
$post = get_post( $post );
if ( ! $post instanceof WP_Post ) {
return '';
}
$post_type_route = rest_get_route_for_post_type_items( $post->post_type );
if ( ! $post_type_route ) {
return '';
}
$route = sprintf( '%s/%d', $post_type_route, $post->ID );
/**
* Filters the REST API route for a post.
*
* @since 5.5.0
*
* @param string $route The route path.
* @param WP_Post $post The post object.
*/
return apply_filters( 'rest_route_for_post', $route, $post );
}
Hooks
- apply_filters( ‘rest_route_for_post’, string $route, WP_Post $post )
-
Filters the REST API route for a post.
Changelog
| Version | Description |
|---|---|
| 5.5.0 | Introduced. |