【发布时间】:2020-05-12 08:59:27
【问题描述】:
我有一个按照官方guide 创建的自定义端点 在其中,我只是通过 slug (name) 获取帖子,如下所示:
if ( $posts = get_posts( array(
'name' => $slug,
'post_type' => 'post',
'post_status' => 'publish',
'posts_per_page' => 1
) ) ) $post = $posts[0];
if ( empty( $post ) ) {
return null;
}
准备响应以添加更多关于作者的数据,准备一些自定义字段等。
我面临的问题是我们添加了 Yoast SEO 插件,并且在标准 WP REST API 中包含 yoast_head,但在自定义端点中却没有。
我发现了这个article,它列出了 SEO 数据包含在标准 REST API 中,并且有一个用于获取 SEO 数据的自定义端点
示例:
https://example/wp-json/yoast/v1/get_head?url=https://example.com/hello-world/
这意味着我需要提出一个额外的请求才能获取 SEO 数据。
我还尝试激活 WP REST Yoast Meta 插件但没有成功,因为它在获取常规 WP REST 时抛出错误,并且对自定义插件没有影响 p>
有没有办法在自定义端点中获取 yoast_head?
【问题讨论】:
-
生成它的源代码非常复杂且嵌套,最好的办法是在函数中使用 get_head 端点并使用 php get 请求来附加数据
-
我没有时间编写完整的可测试答案,但您可以在自己的代码中本地使用 Yoast 的 API。不幸的是,Yoast 正在/经历了重写,因此如果您不知道他们是如何进行 DI 的,他们的代码可能并不明显,但是他们仍然有一个 legacy version in their deprecated section 应该可以为您提供您需要使用的代码。显然,所有关于使用明确标记为已弃用的代码的警告都适用。
标签: php wordpress rest wordpress-rest-api