有问题的错误-“无效参数:标记;和标记[0]为not of type integer.“;,意味着您需要提供标记ID列表,而不是名称或段塞。例如,\'tags\' => 123
和\'tags\' => [ 123 ]
都是有效的。(也接受逗号分隔列表,例如。\'tags\' => \'123,4,5\'
.)
所有这些也适用于默认值category
分类法和自定义分类法(例如。my_tax
), 除了category
, 您应该使用categories
而不是category
. 例如,使用\'categories\' => 5
而不是\'category\' => 5
.
根据您的评论:
有没有办法让我总是用名字而不是ID?
您可以尝试其中一种(或两种都用于测试…):
您可以首先使用REST API创建标记/类别(例如。/wp/v2/categories
,并从API响应中获取标记/类别ID,然后在创建帖子时使用它。
因此,您将发出两个REST API请求,一个用于创建标记/类别,另一个用于创建帖子。
在WordPress网站上,您可以register custom REST API fields 喜欢tags_name
和categories_slug
:
// In your theme functions.php file:
add_action( \'rest_api_init\', \'my_register_rest_fields\' );
function my_register_rest_fields() {
register_rest_field( \'post\', \'tags_name\', [
\'update_callback\' => function ( $names, $post ) {
return wp_set_post_tags( $post->ID, $names );
}
] );
register_rest_field( \'post\', \'categories_slug\', [
\'update_callback\' => function ( $slugs, $post ) {
$ids = [];
foreach ( wp_parse_list( $slugs ) as $slug ) {
if ( $category = get_category_by_slug( $slug ) ) {
$ids[] = $category->term_id;
}
}
return ( ! empty( $ids ) ) ?
wp_set_post_categories( $post->ID, $ids ) : false;
}
] );
}
然后,在创建帖子时,在API请求正文/数据中,使用
\'categories_slug\' => \'cat-one, cat-two, etc\'
对于类别,以及
\'tags_name\' => \'one, two, etc\'
用于标记。请记住,对于类别,您需要使用类别而不是名称。