WordpressReader Logo

Swift Compatibility Platform Compatibility License - MIT Version GitHub last commit Mastodon Twitter

概述

一种简单的异步方式来下载和解码公共 Wordpress 内容。

演示应用

Example 文件夹包含一个应用,演示此软件包的功能。

安装和使用

此软件包兼容 iOS 14+、macOS 11+、watchOS 7+、tvOS 14+ 和 visionOS。

  1. 在 Xcode 中,前往 File -> Add Packages
  2. 粘贴仓库的 URL:https://github.com/ryanlintott/WordpressReader 并按版本选择。
  3. 使用 import WordpressReader 导入软件包

这是否已准备好用于生产环境?

实际上,这取决于您。我目前在我的 Old English Wordhord app 中使用此软件包。

此外,如果您发现错误或想要新功能,请添加一个 issue,我会回复您。

支持

WordpressReader 是开源且免费的,但如果您喜欢使用它,请考虑支持我的工作。

ko-fi


功能

为任何 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
}