我目前正在使用Duncan Temple Lang的RWordpress-package和谢益辉的knitr-package来直接从R生成博客帖子。对于正常的常规帖子,我想生成一个帖子带有以前定制的后置类型。通过knit2wp,我似乎只生成常规的新帖子,编辑已发布的帖子或生成新页面。
如果我想手工写一篇文章,我将访问Wordpress后端中的一个页面。对于常规帖子,应为
https://www.your-wordpress.blog/wp-admin/post-new.php
对于定制的帖子
https://www.your-wordpress.blog/wp-admin/post-new.php?post_type=custom
所以我的建议是,我必须发送一些附加信息,以及通过knitr的knit2wp函数发送的操作参数。
knit2wp的函数调用定义如下:
knit2wp(input, title = "A post from knitr", ..., envir = parent.frame(),
shortcode = FALSE, action = c("newPost", "editPost", "newPage"), postid,
encoding = getOption("encoding"), publish = TRUE)
定义了通过
发送到Wordpress的参数之后 WPargs = list(content = list(description = content, title = title,
...), publish = publish)
通话本身已完成:
do.call("library", list(package = "RWordPress", character.only = TRUE))
do.call(action, args = WPargs)
Wordpress所提供的信息向我提示了一个称为附件的结构字段。因此,我的想法是包括一个名为附件的列表:
WPargs = list(content = list(description = content, title = title,
...), enclosure = list(type = "custom"), publish = publish)
不幸的是,它导致错误消息:
unused argument (enclosure = list(type = "custom", categories = c("test1", "test2"), wp_post_thumbnail = 12345))
如果我修改了XMLRPC包中的某些调用,但我不知道从哪里开始,我认为我可以正确包含post-type。有人知道如何在Wordpress中通过R生成帖子的自定义类型吗?
答案 0 :(得分:0)
也许无法直接给出答案,但是我找到了使用curl命令的解决方案(参见Media Api Reference of WordPress)。这样,我仅作为系统调用发送了命令。我将多个字符串连接到curl命令,例如:
header<- "--header 'Authorization: Basic your_token_here'"
title<- "'title=Some title here'"
excerpt<- "-d 'Some excerpt here'"
url <- "-d 'slug=some-customized-url-structure-here'")
command<-paste("curl ",header," -X POST -d ",title," -d 'status=publish' -d 'categories=12345' -d 'content= here goes the content' -d 'featured_media=xxxyyy' -d 'author=zzzz' ",url," ",excerpt," https://www.your-ur.l/wp-json/wp/v2/customized_structure_update",sep="")
如果我再启动
system(command)
一切正常。