函数文档

rest_get_queried_resource_route()

💡 云策文档标注

概述

rest_get_queried_resource_route() 函数用于获取当前查询对象的 REST API 路由。它根据查询类型(如文章、分类、作者等)返回相应的路由字符串,若无匹配则返回空字符串。

关键要点

  • 函数返回当前查询对象的 REST 路由,例如文章、分类或作者的路由。
  • 支持多种查询类型:is_singular()、is_category()、is_tag()、is_tax() 和 is_author()。
  • 通过 rest_queried_resource_route 过滤器允许自定义路由。
  • 返回值为字符串,若无资源则返回空字符串。

代码示例

function rest_get_queried_resource_route() {
    if ( is_singular() ) {
        $route = rest_get_route_for_post( get_queried_object() );
    } elseif ( is_category() || is_tag() || is_tax() ) {
        $route = rest_get_route_for_term( get_queried_object() );
    } elseif ( is_author() ) {
        $route = '/wp/v2/users/' . get_queried_object_id();
    } else {
        $route = '';
    }
    return apply_filters( 'rest_queried_resource_route', $route );
}

注意事项

  • 函数自 WordPress 5.5.0 版本引入。
  • 依赖多个查询函数如 get_queried_object() 和 get_queried_object_id() 来获取对象信息。
  • 常用于 REST API 相关功能,如输出链接标签或头部。

📄 原文内容

Gets the REST route for the currently queried object.

Return

string The REST route of the resource, or an empty string if no resource identified.

Source

function rest_get_queried_resource_route() {
	if ( is_singular() ) {
		$route = rest_get_route_for_post( get_queried_object() );
	} elseif ( is_category() || is_tag() || is_tax() ) {
		$route = rest_get_route_for_term( get_queried_object() );
	} elseif ( is_author() ) {
		$route = '/wp/v2/users/' . get_queried_object_id();
	} else {
		$route = '';
	}

	/**
	 * Filters the REST route for the currently queried object.
	 *
	 * @since 5.5.0
	 *
	 * @param string $link The route with a leading slash, or an empty string.
	 */
	return apply_filters( 'rest_queried_resource_route', $route );
}

Hooks

apply_filters( ‘rest_queried_resource_route’, string $link )

Filters the REST route for the currently queried object.

Changelog

Version Description
5.5.0 Introduced.