使用API创建帖子时如何填写YOAST SEO元数据

问题描述 投票:0回答:3

我正在尝试为我的 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 提供元描述。

wordpress seo yoast
3个回答
1
投票

有同样的问题。如果您安装以下插件: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);
};

0
投票

我一直在为设置 SEO 标题和描述而绞尽脑汁。我发现了两种方法(一种适用于所有内容,另一种适用于帖子/页面/类别)

方法 1:(适用于所有内容,如标签、类别、CPT、页面等)

有一个 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
}

方法2:(适用于页面/类别)

如果您想自定义要使用的字段,我建议进入主题的

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
来映射字段。


-2
投票

您需要使用

_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],
}
© www.soinside.com 2019 - 2024. All rights reserved.