微生物基因體研究室 Microbial Genomics Lab

Using genomics and bioinformatics to understand antimicrobial resistance, outbreaks, and emerging microbial threats

blog

關於 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

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

  1. In WordPress, go to Plugins → Add Plugin → Upload Plugin.
  2. Upload the CitePress ZIP file and activate the plugin.
  3. Apply for ORCID Public API credentials through ORCID Developer Tools.
  4. Copy your Client ID and Client Secret.
  5. Go to Settings → CitePress and paste both values.
  6. 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-article and preprint are 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+).