https://github.com/yeraph-plus/alist-client-plugin-for-wordpress
适用于 WordPress 的 Alist 客户端插件,转发 Alist 服务器中的文件链接到网页中。
https://github.com/yeraph-plus/alist-client-plugin-for-wordpress
alist wordpress wordpress-plugin
Last synced: 6 months ago
JSON representation
适用于 WordPress 的 Alist 客户端插件,转发 Alist 服务器中的文件链接到网页中。
- Host: GitHub
- URL: https://github.com/yeraph-plus/alist-client-plugin-for-wordpress
- Owner: yeraph-plus
- License: gpl-3.0
- Created: 2024-09-07T16:24:29.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-10-06T18:56:11.000Z (over 1 year ago)
- Last Synced: 2024-10-15T20:41:35.949Z (about 1 year ago)
- Topics: alist, wordpress, wordpress-plugin
- Language: PHP
- Homepage:
- Size: 302 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
## Alist 文件列表客户端插件 for WordPress
> **风险提示:** 此插件的上游项目 alist 被曝供应链投毒,请自行考量是否弃用。 [Source from](https://www.nodeseek.com/post-361011-1)

使用 WordPress 短代码功能在文章中插入 Alist 服务器中的文件链接,通过 Alist 托管站点的文件下载。
### 插件说明
**需要 `PHP>=8.1` 并包含 `curl` 和 `json` 拓展**
插件使用 Alist API 实现,所有请求均在后端完成,无需担心令牌泄露。
短代码功能完整支持 API 的 `get`、`list`、`search` 接口,可使用文件路径、文件夹、索引关键词方式获取 Alist 中的文件或文件列表,支持分页显示。
### 使用说明
各选项详细说明请见插件设置页,以下为一些需要注意的地方:
1. 短代码支持使用交互表单快捷输入,但仅限经典编辑器,未适配古腾堡。
2. 如果使用搜索接口,需要先为 Alist 配置数据库,否则 Alist 是不支持索引的。
3. 前端使用 bootstrap-icons 图标库匹配文件图标,在站点中会额外加载图标库字体的样式表。
4. 插件中设置的 Alist 服务器地址需要外部可访问,如果你的 Alist 无法从外部访问(如 `http://127.0.0.1:5244/`),请将插件链接设置改为 “提取直链”,否则插件会直接拼接为内部链接。
5. 插件默认使用异步请求文件列表,异步加载时会在页面中载入额外的JS组件,可能会有部分 Pjax 形式的主题不兼容,此时可切换为同步加载,但是会拖慢页面加载速度。
6. 插件默认在获取到超过10个文件时开始分页,可通过设置为0不分页,但由于 Alist 索引文件时强制要求分页参数,可在短代码中添加 `per_page="10"` 参数覆盖全局设置。
7. 如果配置短代码参数 `refresh="ture"` ,会使 Alist 跳过自身缓存直接从网盘位置获取文件,通常不建议使用。
有使用问题/功能建议请提 issue ,随缘处理。
### Alist API 的封装类说明
插件使用 Alist API 的所有请求方法封装在项目的 `/lib` 目录下,是根据 Alist API (V3) 实现的PHP版客户端实例。
封装部分仅Alist的`auth`、`fs`、`public`这三组接口,其他的元信息、用户、设置等的功能接口外部也用不上,就没管。
目录下提供了 `demo.php` 方法样例,你可以以此为参考自行实现其他功能或将 Alist 嵌入到其他PHP项目中。
此实例的请求参数和返回响应与官方文档一致,具体的参数定义请参照 [Alist 文档](https://alist.nn.ci/zh/guide/api/auth.html) 。
### 完整短代码参数说明
#### 最简调用:
`[alist_cli path="/" /]`
不指定方法时,默认使用`get`方法。
PS:插件会通过判断传入的路径是否为文件切换到`list`方法,只是简单正则检查,不一定准。
#### 文件列表:
`[alist_cli method="list" path="/" password="" per_page="0" refresh="false" /]`
参数按顺序为插件方法、路径、访问密码、分页、强制刷新,前台使用文件列表模板。
#### 文件/文件夹详情:
`[alist_cli method="get" path="/readme.md" password="" per_page="0" refresh="false" /]`
参数按顺序为插件方法、文件&文件夹路径、访问密码、分页、强制刷新,前台使用文件详情卡片模板。
#### 搜索文件或文件夹:
`[alist_cli method="search" parent="/" keywords="关键词" scope="2" password="" per_page="0" /]`
参数按顺序为插件方法、搜索根路径、关键词、搜索范围、访问密码、分页,前台使用文件列表模板。
使用搜索方法时列表加载更慢,这是因为 Alist 索引结果是不包含文件详细参数的,所以内部需要将列表重新循环为`get`方法以获取文件。
#### 直接输出文件真实地址:
`[alist_raw_url path="/readme.md" /]`
用于嵌入网页播放器。~~但是播放器插件是不打算写了。~~
### 加载速度优化参考
因为通常的 Alist 站点都会使用cf加速,并且插件是通过 Curl 发送外部请求的,所以直接在服务器配置DNS解析到 Alist 服务器,可以加速加载速度,或者在 Nginx 配置条件反向代理到 Alist 也行。
### ~~在线要饭~~
赏赏作者,支持一下:[我的爱发电](https://afdian.com/a/NyaaACG)