一种简单的异步方式来下载和解码公共 Wordpress 内容。
Example
文件夹包含一个应用,演示此软件包的功能。
此软件包兼容 iOS 14+、macOS 11+、watchOS 7+、tvOS 14+ 和 visionOS。
File -> Add Packages
https://github.com/ryanlintott/WordpressReader
并按版本选择。import WordpressReader
导入软件包实际上,这取决于您。我目前在我的 Old English Wordhord app 中使用此软件包。
此外,如果您发现错误或想要新功能,请添加一个 issue,我会回复您。
WordpressReader 是开源且免费的,但如果您喜欢使用它,请考虑支持我的工作。
为任何 Wordpress.com 网站创建 WordpressSite 的实例
let site = WordpressSite(domain: "oldenglishwordhord.com", name: "Old English Wordhord")
异步获取文章、页面、分类或标签
let posts: [WordpressPost] = try await site.fetch(.posts())
let pages: [WordpressPage] = try await site.fetch(.pages())
let categories: [WordpressCategory] = try await site.fetch(.categories())
let tags: [WordpressTag] = try await site.fetch(.tags())
添加一组 WordpressQueryItem 以缩小您的请求范围
let request = WordpressRequest.posts([.postedAfter(aWeekAgo), .order(.asc), perPage(10)])
let posts = try await site.fetch(request)
Wordpress 查询可能会返回多个项目页面。您可以自定义您的 WordpressRequest 以快速获取第一页
var recentPosts = WordpressRequest.posts()
recentPosts.maxPages = 1
var remainingPosts = WordpressRequest.posts()
remainingPosts.startPage = 2
self.posts = try await site.fetch(recentPosts)
self.posts += try await site.fetch(remainingPosts)
默认的 .fetch() 将并行获取页面,但只有在所有页面都完成后才会返回。如果您希望每个批次在准备就绪后按顺序返回,请使用异步流
for try await batch in try await site.stream(request) {
self.posts += posts
}