可以以豆列的方式展示電影、圖書、音樂。
數據本地化,解決豆瓣接口失效及圖片防盜鏈。
提要
(3) 對豆瓣網內容的衍生利用,包括但不限于基于或利用豆瓣網內容而開發的任何插件、軟件、應用程序、網站;
豆瓣這協議看著有點嚇人,本插件僅作為個人興趣學習研究使用。
多年以前我寫過一個插件,主要是以embed 的方式文章中插入豆瓣條目,之前的主題也支持過拉取豆瓣的看過記錄,隨著豆瓣逐漸封閉,接口都無法使用,這些功能就都不了了之了。最近隨著靜態博客的流行,GitHub Actions 的升級以及Notion 之類的數據倉崛起,書影音的管理似乎又流行了起來。稍微研究了一下,把之前這個老插件進行了升級。
以前這這個功能的時候只是想做一個功能展示,并未從一個產品的角度去思考這個功能要什么樣以及為什么這個樣子。思考下來,應該有以下幾點。
- 文章中embed 引用條目,方便方可查看該條目更多內容,同時如果是已觀看記錄,輸出自己的評分以及短評。
- 條目管理一方面是對自己已閱條目的記錄,另一方面也承擔了影片推薦的功能,畢竟好電影很多,但找到好電影不容易。
- 本地化數據以防止受第三方服務影響,但并沒有增加搜索功能。
- 所以條目均可手動管理,方便處理一些敏感條目。
并沒有引入點贊之類的功能,覺得這些功能更多是主觀的意見輸出,并不需要點贊。
一般工具的缺陷
現在網絡上的各種豆瓣同步教程一般來說是足夠使用了,但像我這種觀影量比較大的人來說,還是有一定的缺陷,主要有以下幾個缺點。
- 一些限制類的電影只有條目,無法進行標記打分操作。
- 一部分條目只有登陸才能查看,非登陸狀態通過接口或者rss 方式均會顯示未知電影或未知電視劇。
- 豆瓣不支持設置觀看時間,只有標記時間。
- 大部分教程沒有對個人評分和短評進行管理。
- 部分小眾條目沒有封面。
改進
- 通過接口的方式自動同步數據,通過WP 的Cron Job 定時同步最新標記的條目。
- 通過油猴腳本導出CSV 數據,再將CSV 導出本地,解決未知電影和未知電視劇的問題。
- 數據本地化,可以手動修改觀影時間。
- 拉取了個人評分和短評。
- 可手動新建編輯條目,解決了豆瓣條目信息缺失以及無條目的問題。
仍然存在的缺陷
- 豆瓣取消標記無法自動刪除本地記錄,只能清庫重新同步。
- 清庫會造成自定義數據的遺失。
封面本地存儲后更新比較麻煩,只能手動去服務器刪除文件。個人評分和短評僅做了存儲,并未展示。
使用
圖片內容緩存到本地解決豆瓣防盜鏈。讀取API數據緩存時間為1個月。
調用電影封面
使用函數get_movie_image($id)
,id為豆瓣電影數字id
使用插件內置的縮略圖函數wpd_get_post_image($id)
,id為文章id
插入方式
直接在文章中粘貼豆瓣url即可。
圖書展示
https://book.douban.com/subject/34481379
音樂專輯展示
https://music.douban.com/subject/6816154
電影展示
https://movie.douban.com/subject/1292001
游戲展示
http://www.douban.com/game/26817171/
舞臺劇展示
https://www.douban.com/location/drama/11519197/

使用介紹
注:本插件僅作為學習研究使用。請合理使用插件,切勿惡意采集數據。
卸載插件會刪除數據庫數據,如果有自定義數據建議備份后再刪除。
可能因為服務器時區問題同步任務無法立即執行,可下載插件WP Crontrol
,手動執行db_sync
?事務。

插件參數定義
豆瓣賬號id 為豆瓣的數字賬號ID,文章引入條目卡片無需配置豆瓣賬號信息,如需展示看過列表則需要配置豆瓣賬號。一般打開個人主頁,url 中的數字即為豆瓣賬號id。如設置過自定義賬號,則在新窗口打開自己的頭像,頭像文件名中的數字就是自己的賬號id。
如過要修改賬號ID,建議刪除插件重新安裝,否則展示的標記數據會為多個賬號的集合數據。
點擊你的個人主頁,URL類似為
https://www.douban.com/people/54529369/
,54529369
就是你的ID
插件支持五種條目類型,當需要設置類型均按照一下規則
music
?音樂movie
?電影game
?游戲book
?圖書drama
?話劇
每頁顯示條目數量僅對標記列表生效,默認為70
,可根據自身主題寬度進行調整。
自定義CSS
插件的CSS
?顏色變量,插件配色CSS
?變量設置,僅需在插件后臺設置變量即可。
:root { --db-main-color: rgba(0, 87, 217); --db-hover-color: rgba(104, 156, 233, 1); }
--db-main-color
為菜單高亮色,--db-hover-color
為鼠標懸浮色。
同步標記數據需要配置賬號,配置賬號后先禁用插件,再激活即可自動同步數據。
下載圖片到本地
如開啟該選項,則會把封面信息緩存到本地,首次加載的時候可能會消耗較長時間,圖片只會下載一次,如需更新圖片需刪除文件夾下的對應文件,路徑為網站根目錄下douban_cahce
。
不加載插件靜態文件
如把css 和js 集成到自己的主題中可開啟該選項,開啟后插件不會加載自身的靜態文件。
Top250
開啟該選項則會定期同步豆瓣top250 清單,當條目在清單中時展示top250 標識。
注:開啟后不會馬上同步數據,需等待下次同步任務開啟后執行,如需立即執行可通過禁用再激活插件的方式操作。
文章中引用豆瓣條目卡片
注:因為是直接在文字中插入DOM 結構,卡片的樣式可能會受到主題文章內容樣式影響。
直接在文章中粘貼豆瓣url 即可。注意,鏈接只會在文章詳情頁轉換卡片,在首頁和其他列表頁不會轉換。
支持電影、圖書、音樂、游戲和話劇五種類型。
https://movie.douban.com/subject/35057107/
https://music.douban.com/subject/35807125/
注:豆瓣條目移動端url 和PC 端url 并不相同,目前支持PC 端url。
文章中引用時間段內標記的內容
可通過短代碼的方式,引入最近看過的條目。如有短評則會在卡片中展示短評,否則顯示條目默認信息。

同一篇文章可插入多個列表,單列表僅支持一種類型。
[wpc type=movie start=2022-05-01 end=2022-05-22 status=doing]
type
?為條目類型,start
為開始時間,end
為結束時間,可不設置結束時間,未設置結束時間則為開始時間到現在,時間格式為年-月-日,格式錯誤將無法正常加載數據。
type和start兩個參數均為必須字段,參數請按照正確格式設置,錯誤設置將不會展示任何數據。
新增一個style參數,設置為list 的時候會按日期列表形式展示。

[wpc type=movie start=2022-05-01 end=2022-05-22 style=list]
新增一個status參數為標記狀態,分為mark
?想看,doing
?在看和done
?已看,不設置則展示為已看。
[wpc type=movie start=2022-05-01 status=mark]
在頁面中展示標記列表
同一頁面僅可調用一次,多次調用會造成數據混亂。可同時傳入多種類型,類型為movie
?時會加載電影類型。當只有一種類型時不顯示類型切換菜單。

短代碼方式,多個類型用,
隔開
[wpd types=movie,book]
函數方式,參數為類型數組。
<?php $WPD = new WPD_Douban(); echo $WPD->render_template(['music', 'book', 'game', 'movie']); ?>
增加一個按日期歸檔的展示方式

短代碼方式,多個類型用,
隔開
[wpd types=movie,book style=card]
函數方式,參數為類型數組。
<?php $WPD = new WPD_Douban(); echo $WPD->render_template(['music', 'book', 'game', 'movie'],'card'); ?>

現在有新的api接口 非官方 大佬有能力的話可以修復一下此插件
github.com/iiiiiii1/douban-imdb-api 以及www.5mrk.com/1723.html
樓主這個插件什么時候會復活哦
作者估計棄坑了,估計是不會復活的
插件非常好!謝謝博主。還有想請問一下,豆瓣圖書能否也增加顯示內容呢?就是內容簡介也一起顯示出來? ?棒棒的?
理論上是可以的,可以參考調用調用電影簡介的方法自己試試,等你好消息