使用API创建WordPress文章时Yoast SEO元描述为空问题咨询
解决WordPress API插入Yoast元描述为空的问题
你代码里的问题主要出在字段名称和结构不对,Yoast SEO的元描述不能通过yoast_meta对象传递,而且键名也有误,另外还要确保WordPress开放了该元字段的API读写权限。
1. 修正元描述的字段键名与结构
Yoast的元描述对应的数据库元字段是_yoast_wpseo_metadesc(注意开头的下划线),必须放在meta对象里传递,而不是单独的yoast_meta。修正后的代码如下:
post_data = { 'title': title, 'content': markdown.markdown(content), 'slug': slug, 'status': 'publish', 'author': author_id, 'categories': [category_id], 'meta': { '_yoast_wpseo_metadesc': meta_description, # 修正键名 }, }
2. 确保WordPress开放该元字段的API权限
默认情况下,Yoast的自定义元字段没有被注册到REST API,所以即使传对了字段,也无法写入。需要在你的WordPress主题的functions.php文件中添加以下代码,注册该元字段:
add_action('rest_api_init', function () { register_meta('post', '_yoast_wpseo_metadesc', array( 'show_in_rest' => true, 'single' => true, 'type' => 'string', 'sanitize_callback' => 'sanitize_text_field', 'auth_callback' => function () { return current_user_can('edit_posts'); } )); });
这段代码的作用是告诉WordPress,允许_yoast_wpseo_metadesc这个元字段通过REST API读写,同时做了权限和安全校验。
3. 验证是否生效
修改后重新调用API创建文章,然后在WordPress后台编辑该文章,查看Yoast SEO面板的元描述是否已经正确填充。
内容的提问来源于stack exchange,提问作者Aysennoussi
相关产品推荐
相关产品推荐

