Публикуйте сообщения с пользовательским типом записи из R с помощью RWordpress и knit2wp - PullRequest
0 голосов
/ 03 января 2019

В настоящее время я использую RWordpress-пакет от Duncan Temple Lang и knitr-package от Yihui Xie для создания сообщений в блоге непосредственно из 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

Так что я предлагаю, чтобы я отправил некоторую дополнительную информацию с action-аргумент передается через knit2wp-функцию knitr.

Функциональный вызов 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 подсказывает мне поле структуры, называемое вложением.Моя идея заключалась в том, чтобы включить список с именем enclosure:

  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))

Я предполагаю, что я могу правильно включить post-type, если яизменить некоторые вызовы из XMLRPC-пакета, но я не знаю, с чего начать.У кого-нибудь есть идеи, как генерировать пользовательские типы постов через R в Wordpress?

1 Ответ

0 голосов
/ 07 февраля 2019

Возможно, не прямой ответ, но я нашел решение с помощью команд curl (см. Media Api Справочник по 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)

Все отлично работает.

...