Wordpress API - 如何将剩余字段添加到标签
Posted
技术标签:
【中文标题】Wordpress API - 如何将剩余字段添加到标签【英文标题】:Wordpress API - how to add rest field to tags 【发布时间】:2019-10-20 06:23:35 【问题描述】:我正在做一个无头 wordpress,所以使用 wordpress API。
使用 Yoast 进行 SEO,我已将 yoast SEO 数据添加到我的帖子类型 API 端点,如下所示:
function wp_api_encode_yoast($data, $post, $context)
$yoastMeta = array(
'yoast_wpseo_focuskw' => get_post_meta($post->ID, '_yoast_wpseo_focuskw', true),
'yoast_wpseo_title' => wpseo_replace_vars(get_post_meta($post->ID, '_yoast_wpseo_title', true), $post),
'yoast_wpseo_metadesc' => wpseo_replace_vars(get_post_meta($post->ID, '_yoast_wpseo_metadesc', true), $post),
'yoast_wpseo_linkdex' => get_post_meta($post->ID, '_yoast_wpseo_linkdex', true),
'yoast_wpseo_metakeywords' => get_post_meta($post->ID, '_yoast_wpseo_metakeywords', true),
'yoast_wpseo_meta_robots_noindex' => get_post_meta($post->ID, '_yoast_wpseo_meta-robots-noindex', true),
'yoast_wpseo_meta_robots_nofollow' => get_post_meta($post->ID, '_yoast_wpseo_meta-robots-nofollow', true),
'yoast_wpseo_meta_robots_adv' => get_post_meta($post->ID, '_yoast_wpseo_meta-robots-adv', true),
'yoast_wpseo_canonical' => get_post_meta($post->ID, '_yoast_wpseo_canonical', true),
'yoast_wpseo_redirect' => get_post_meta($post->ID, '_yoast_wpseo_redirect', true),
'yoast_wpseo_opengraph_title' => get_post_meta($post->ID, '_yoast_wpseo_opengraph-title', true),
'yoast_wpseo_opengraph_description' => get_post_meta($post->ID, '_yoast_wpseo_opengraph-description', true),
'yoast_wpseo_opengraph_image' => get_post_meta($post->ID, '_yoast_wpseo_opengraph-image', true),
'yoast_wpseo_twitter_title' => get_post_meta($post->ID, '_yoast_wpseo_twitter-title', true),
'yoast_wpseo_twitter_description' => get_post_meta($post->ID, '_yoast_wpseo_twitter-description', true),
'yoast_wpseo_twitter_image' => get_post_meta($post->ID, '_yoast_wpseo_twitter-image', true)
);
$data->data['yoast_meta'] = (array) $yoastMeta;
return $data;
add_filter('rest_prepare_post', 'wp_api_encode_yoast', 10, 3);
add_filter('rest_prepare_category', 'wp_api_encode_yoast', 10, 3);
add_filter('rest_prepare_page', 'wp_api_encode_yoast', 10, 3);
这适用于帖子、类别、页面和任何其他帖子类型。但是我看不到如何将其添加到标签中,并且似乎缺少文档。我不相信register_rest_field
是一个选项,因为它为特定的帖子类型注册了一个字段......而且我不认为标签被视为帖子类型。至少,rest_prepare_tag
过滤器不起作用。
需要一些关于如何向标签添加休息字段的指示。
【问题讨论】:
【参考方案1】:OK 终于找到解决办法了。
查看wp_term_taxonomy
表后,我注意到taxonomy
列描述了标签的分类术语——实际上是post_tag
,而不仅仅是“标签”。
所以,这行得通:
add_filter('rest_prepare_post_tag', 'wp_api_encode_yoast', 10, 3);
希望有人会因此得到帮助。
【讨论】:
以上是关于Wordpress API - 如何将剩余字段添加到标签的主要内容,如果未能解决你的问题,请参考以下文章
php WordPress休息api定制;丢弃端点,添加新字段,在api中显示cpt
PHP 如何自动将搜索字段添加到导航菜单中| WordPress的
无法显示来自 Wordpress REST API 自定义端点的自定义字段