關於 CitePress WordPress Plugin
CitePress
CitePress 是一個 WordPress plugin,用來從研究者的 ORCID record 建立格式一致的學術著作清單。
Current version: 0.6.2
Tested with: WordPress 7.1 / PHP 7.4+
Author & Maintainer: Ying-Tsong Chen 陳盈璁 (with ChatGPT)
License: GPLv2 or later
Contents
- What CitePress Does
- How It Works
- Installation & Setup
- Shortcodes
- Supported Publications
- Data Refresh & Cache
- Manual Update & Rollback (NEW!)
- Notes & Limitations
- Why I Made CitePress
What CitePress Does
CitePress uses ORCID to determine which works belong to a researcher, then uses DOI and other identifiers to obtain more consistent bibliographic metadata.
Its basic philosophy is simple:
Missing information is better than confidently displaying incorrect information.
Starting with version 0.4.0, CitePress is fully standalone and does not require Researcher Profiles for ORCID or its CSS.
How It Works
ORCID
↓
Works & identifiers
↓
DOI ─────→ Crossref
↓
bibliographic metadata
↓
Europe PMC
(fallback if needed)
ORCID identifies the researcher and works. Crossref is the primary source for DOI-based bibliographic metadata. Europe PMC is used conservatively to fill missing fields or help resolve selected older records.
For genuine non-DOI publications, CitePress can use metadata stored directly in ORCID and display an EID when available.
Installation & Setup
- In WordPress, go to Plugins → Add Plugin → Upload Plugin.
- Upload the CitePress ZIP file and activate the plugin.
- Apply for ORCID Public API credentials through ORCID Developer Tools.
- Copy your Client ID and Client Secret.
- Go to Settings → CitePress and paste both values.
- Save the settings.
The Client ID and Client Secret are not your ORCID password. CitePress uses them only to obtain /read-public access and read publicly visible ORCID records. It does not modify your ORCID record.
Shortcodes
Journal articles
[citepress orcid="0000-0003-1337-4127" type="journal-article"]
Preprints
[citepress orcid="0000-0003-1337-4127" type="preprint"]
Replace the example ORCID iD with the ORCID of the researcher whose publications you want to display.
Supported Publications
CitePress v0.4.2 has been tested with two ORCID work types:
- journal-article
- preprint
For journal articles, CitePress can display:
- title
- authors
- the researcher’s own name in bold
- journal
- publication year
- volume
- issue
- pages or article number
- DOI
- EID fallback for genuine non-DOI records
A typical citation looks like:
Establishment and characterization of a Wolbachia (wAlbB)-infected Aedes aegypti line (Tw-Kao) for dengue control
Hui-Ying Yu, Bo-Yu Chen, Ying-Tsong Chen, et al.
PLOS Neglected Tropical Diseases 2026 20(5): e0014222
DOI: 10.1371/journal.pntd.0014222
Preprints are handled separately from journal articles. CitePress can identify supported preprint platforms such as bioRxiv, medRxiv, arXiv, ChemRxiv and Research Square.
If the platform cannot be determined reliably, CitePress leaves it blank rather than guessing.
Data Refresh & Cache
CitePress does not run scheduled background synchronization or create a WordPress Cron job.
Starting with v0.5.0, CitePress provides two refresh modes:
Automatic — Lazy Refresh
This is the default mode.
CitePress caches publication metadata and refreshes expired data only when the publication page is requested.
Page requested
↓
Check cache
↙ ↘
valid expired
↓ ↓
use it fetch fresh data
↓
rebuild cache
Different metadata have different cache lifetimes. ORCID works are normally cached for about one day, researcher/work details for up to seven days, while stable DOI metadata may be cached much longer.
Nothing is synchronized in the background.
Manual — Update Only When You Decide
In Manual mode, successfully retrieved publication metadata does not expire automatically.
The publication list remains unchanged until you explicitly request an update.
This mode is useful when you prefer to keep a stable public publication list and update it only after you have reviewed or modified your ORCID record.
Failed API lookups are still cached only temporarily, so a temporary network or external-service failure will not become permanent.
Manual Update & Rollback
Manual mode includes a simple one-level rollback system.
When you click Prepare Manual Update, CitePress first saves the current publication metadata as the Previous Version, and then clears the active cache.
Current publication data
↓
Prepare Manual Update
↓
Save as Previous Version
↓
Clear active cache
↓
Next publication-page request
↓
Retrieve fresh metadata
↓
New current publication data
The actual update occurs the next time the publication page is requested.
If the refreshed publication list is incomplete or otherwise unsatisfactory, go back to:
Settings → CitePress
and click:
Restore Previous Version
CitePress will restore the publication metadata saved immediately before the update.
Only one previous version is retained. Each new manual update replaces the previous rollback snapshot.
Notes & Limitations
- CitePress depends on the quality of metadata available from ORCID, Crossref and Europe PMC.
- If an older ORCID record has a DOI but the DOI is missing from ORCID, adding it directly to your ORCID record is usually the best solution.
- Title-based DOI recovery is deliberately conservative; ambiguous matches are rejected.
- Genuine non-DOI publications can fall back to ORCID contributors and EID where available.
- Other ORCID work types may work, but only
journal-articleandpreprintare currently tested and supported. - CitePress includes its own CSS and does not require another ORCID plugin for formatting.
- Manual rollback retains only one Previous Version. It is intended as a simple safety net for publication updates, not as a full version-control or backup system.
Why I Made CitePress
CitePress 一開始其實不是什麼開發計畫。
我只是懶得再手動維護自己的 publication list,所以找了一個 WordPress plugin,讓它從 ORCID 自動抓著作。用了之後,卻陸續發現一些自己想改的地方:我希望顯示作者、自己的名字要粗體、期刊資料要完整、preprint 要正確處理,遇到老文章缺 DOI 時也應該有合理的辦法。
一開始只是請 ChatGPT 幫我修改原來的 plugin;改著改著,我突然想到:既然 ORCID 可以告訴我有哪些作品,DOI 又可以從 Crossref 取得書目資料,那何不乾脆按照自己想要的邏輯,重新做一個?
於是就有了 CitePress。
有趣的是,整個過程中我幾乎沒有寫一行 PHP。我做的事情,是不斷告訴 ChatGPT 「我想要什麼」:資料應該從哪裡來、什麼結果才合理、遇到例外怎麼處理,以及哪些事情寧可不知道,也不要亂猜。
這讓我愈來愈覺得,AI 時代的「寫程式」正在變成一件不太一樣的事情。
你不一定要先學會 PHP,才能做一個 WordPress plugin;但你仍然必須知道自己想解決什麼問題,也必須有能力判斷做出來的東西到底對不對。
以前,我們得先學會電腦的語言,才能把想法告訴電腦。
現在,開始可以直接把想法講清楚了。
程式語言並沒有消失,只是慢慢退到了使用者看不見的地方。
CitePress 0.6.2
Ying-Tsong Chen 陳盈璁 (with ChatGPT)
Licensed under the GNU General Public License v2 or later (GPLv2+).