我正在尝试为我的 WordPress 帖子插入元描述,但元描述始终为空。
这是我的代码:
post_data = {
'title': title,
'content': markdown.markdown(content),
'slug': slug,
'status': 'publish',
'yoast_meta' : {
'yoast_wpseo_metadesc' : meta_description
},
'author': author_id,
'categories': [category_id], # Assign the category ID to the post
'meta': {
'meta_description': meta_description,
},
}
我不确定字段名称是否正确,或者 Yoast 是否支持从 API 提供元描述。
有同样的问题。如果您安装以下插件:https://github.com/ChazUK/wp-api-yoast-meta
您可以执行以下操作:
try {
const response = await wp.posts().create({
title: "Your Post Title",
content: "Your post content",
status: "publish",
yoast_meta: {
yoast_wpseo_title: "Your SEO title",
yoast_wpseo_metadesc: "Your SEO description",
},
});
console.log(response.id);
} catch (error) {
console.error(error);
};
我一直在为设置 SEO 标题和描述而绞尽脑汁。我发现了两种方法(一种适用于所有内容,另一种适用于帖子/页面/类别)
有一个 plugin 可以管理您正在使用的主题
functions.php
,并为您可以通过 WP Rest API 使用的字段添加相关过滤器。安装后,您可以使用以下结构在创建内容时进行 API 调用:
post_data = {
"title": "Your Title",
"content": "Your Content",
"yoast_meta": {
"yoast_wpseo_title": "SEO Title",
"yoast_wpseo_metadesc": "SEO Desc",
},
... # Other fields
}
如果您想自定义要使用的字段,我建议进入主题的
functions.php
并向您想要使用的字段添加过滤器。这里最重要的是,您必须将自定义字段映射到 _yoast_wpseo_title
和 _yoast_wpseo_metadesc
。其他字段也遵循类似的格式,如 _yoast_wpseo_robots
,我还没有对此进行测试,但我很确定只要您在 functions.php
中添加过滤器,它就会起作用。现在的 API 调用示例如下:
post_data = {
"title": "Your Title",
"content": "Your Content",
... # Other fields
"meta": {
"_yoast_wpseo_title": "SEO Title",
"_yoast_wpseo_metadesc": "SEO Desc",
... # Other fields
}
}
我还没有测试标签的方法 2,因为我的项目不需要它。但我认为在设置过滤器时,您可以使用
post_tag
来映射字段。
您需要使用
_yoast_wpseo_metadesc
键而不是 yoast_wpseo_metadesc
,因为这是 Yoast SEO 用于存储元描述的实际键。
post_data = {
'title': title,
'content': markdown.markdown(content),
'slug': slug,
'status': 'publish',
'meta': {
'_yoast_wpseo_metadesc': meta_description
},
'author': author_id,
'categories': [category_id],
}