Queries KütüphanesiWordPress RSS beslemesinden yeni gönderileri içe aktarın
WordPress RSS beslemesinden yeni gönderileri içe aktarın
Bu query, gönderinin başlığını, içeriğini ve özetini kullanarak bir WordPress RSS beslemesinden tüm yeni gönderileri içe aktarır.
Yeni gönderiler, son 24 saatte oluşturulanlar (değişken aracılığıyla yapılandırılabilir). Diğer sitedeki tüm yeni gönderileri otomatik olarak içe aktarmak için bu persisted query'yi günlük bir otomasyon göreviyle çalıştırın.
$url değişkeni, WordPress gönderi arşivinin RSS beslemesi URL'sini alır. Genellikle gönderi arşivi URL'si + "/feed/rss/?withoutcomments=1" şeklindedir. Örneğin:
https://wordpress.com/blog/feed/rss/?withoutcomments=1$timeDeltaInSeconds değişkeni, bir gönderinin ne zaman yeni sayılacağını belirtir. Varsayılan olarak 86400 saniyedir (yani bir gün).
query GetTime(
$timeDeltaInSeconds: Int! = 86400
) {
now: _time
newPostsStartTime: _intSubtract(
from: $__now
subtract: $timeDeltaInSeconds,
)
@export(as: "newPostsStartTime")
}
query GetPostsFromRSSFeedAndExportData(
$url: URL!
)
@depends(on: "GetTime")
{
_sendHTTPRequest(input: {
url: $url,
method: GET
}) {
body
rssJSON: _strDecodeXMLAsJSON(
xml: $__body
alwaysArrayTagNames: [
"item",
],
)
@export(as: "rssJSON")
}
}
query CreatePostInputsFromRSSFeed
@depends(on: "GetPostsFromRSSFeedAndExportData")
{
items: _objectProperty(
object: $rssJSON,
by: { path: "rss.channel.item" }
)
inputs: _echo(value: $__items)
@underEachArrayItem(
passValueOnwardsAs: "item"
affectDirectivesUnderPos: [1, 2, 3, 4, 6]
)
@applyField(
name: "_objectProperty"
arguments: {
object: $item
by: { key: "pubDate" }
}
passOnwardsAs: "dateAsString"
)
@applyField(
name: "_strToTime",
arguments: {
string: $dateAsString
},
passOnwardsAs: "date"
)
@applyField(
name: "_greaterThanOrEquals",
arguments: {
value1: $date,
value2: $newPostsStartTime
},
passOnwardsAs: "isNewPost"
)
@unless(
condition: $isNewPost
)
@setNull
@if(
condition: $isNewPost
affectDirectivesUnderPos: [1, 2, 3, 4]
)
@applyField(
name: "_objectProperty"
arguments: {
object: $item
by: { key: "title" }
}
passOnwardsAs: "title"
)
@applyField(
name: "_objectProperty"
arguments: {
object: $item
by: { key: "content:encoded" }
}
passOnwardsAs: "content"
)
@applyField(
name: "_objectProperty"
arguments: {
object: $item
by: { key: "description" }
}
passOnwardsAs: "excerpt"
)
@applyField(
name: "_echo",
arguments: {
value: {
status: draft,
contentAs: {
html: $content
},
excerpt: $excerpt
title: $title
}
},
setResultInResponse: true
)
@arrayFilter
@export(as: "inputs")
}
mutation ImportNewPostsFromWordPressRSSFeed
@depends(on: "CreatePostInputsFromRSSFeed")
{
createPosts(inputs: $inputs) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
slug
date
status
content
excerpt
title
}
}
}