Title: Signed Posts
Author: Marc Armengou
Published: <strong>2025 年 10 月 4 日</strong>
Last modified: 2026 年 3 月 7 日

---

搜尋外掛

![](https://ps.w.org/signed-posts/assets/icon-256x256.png?rev=3375882)

# Signed Posts

 由 [Marc Armengou](https://profiles.wordpress.org/marc4/) 開發

[下載](https://downloads.wordpress.org/plugin/signed-posts.0.5.zip)

 * [詳細資料](https://tw.wordpress.org/plugins/signed-posts/#description)
 * [使用者評論](https://tw.wordpress.org/plugins/signed-posts/#reviews)
 *  [安裝方式](https://tw.wordpress.org/plugins/signed-posts/#installation)
 * [開發資訊](https://tw.wordpress.org/plugins/signed-posts/#developers)

 [技術支援](https://wordpress.org/support/plugin/signed-posts/)

## 外掛說明

Signed Posts allows authors to sign posts, assuring content integrity. Signature
verification proves post-signing alteration hasn’t occurred.

**Features:**

 * **In-browser verification:** The signature verification is done on the client
   side (in the visitor’s browser).
 * **Methods:** OpenPGP (ASCII-armored detached signature) and DID (did:key, did:
   web) using Ed25519 detached JWS (b64=false).
 * **Source of trust:** For OpenPGP, the author specifies the URL of their public
   key in their profile. For DID, the author sets their DID (did:key or did:web).
   For did:web, the plugin fetches `https://<host>/.well-known/did.json`.
 * **Status block:** An informative block is automatically added to the end of each
   signed article, showing the verification status (valid, invalid, or error).
 * **Author badge:** The author name in posts is enhanced with an icon and KeyID/
   fingerprint text.

### Source Code and Libraries

**OpenPGP.js**
 * **Version:** 6.2.2 * **License:** LGPL-3.0-or-later * **Public
Source Code:** https://github.com/openpgpjs/openpgpjs

**Web Crypto API**
 * Used to verify Ed25519 signatures for DID.

## 安裝方式

 1. Go to **Plugins > Add New Plugin**.
 2. Search for **Signed Posts**.
 3. Install and activate the **Signed Posts** plugin.

## 常見問題集

### How do I get the content of my post to sign it?

Once you’ve finished your post, click the three dots in the top-right corner of 
the Gutenberg editor. When the options menu opens, select “Copy all blocks.” That
is the content you should sign.

### Where can I host my OpenPGP public key?

You can host it on any service that offers direct links and allows CORS (Cross-Origin
Resource Sharing) access.

### What happens if the signature isn’t valid?

The plugin will display a warning message indicating that the signature doesn’t 
match the content or the public key, which can be a sign of content tampering.

### Does the plugin affect my site’s performance?

The impact on the server is minimal, as the verification is performed entirely in
the visitor’s browser. The only additional resource is the download of the public
key, which is usually very small.

### What format should I use to sign with DID?

Use Compact JWS (detached) with `{"alg":"EdDSA","b64":false,"crit":["b64"],"kid":"
<your did#key>"}` and sign the canonicalized post content (same text you would sign
with OpenPGP).

### Where do I set my DID?

In your User Profile, in the “Decentralized Identifiers (DID)” field. For `did:web`,
ensure your `did.json` is hosted at `https://<host>/.well-known/did.json`.

## 使用者評論

這個外掛目前沒有任何使用者評論。

## 參與者及開發者

以下人員參與了開源軟體〈Signed Posts〉的開發相關工作。

參與者

 *   [ Marc Armengou ](https://profiles.wordpress.org/marc4/)

〈Signed Posts〉外掛目前已有 3 個本地化語言版本。 感謝[全部譯者](https://translate.wordpress.org/projects/wp-plugins/signed-posts/contributors)
為這個外掛做出的貢獻。

[將〈Signed Posts〉外掛本地化為台灣繁體中文版](https://translate.wordpress.org/projects/wp-plugins/signed-posts)

### 對開發相關資訊感興趣？

任何人均可[瀏覽程式碼](https://plugins.trac.wordpress.org/browser/signed-posts/)、
查看 [SVN 存放庫](https://plugins.svn.wordpress.org/signed-posts/)，或透過 [RSS](https://plugins.trac.wordpress.org/log/signed-posts/?limit=100&mode=stop_on_copy&format=rss)
訂閱[開發記錄](https://plugins.trac.wordpress.org/log/signed-posts/)。

## 變更記錄

#### [0.5] – 2026-03-07

 * Updated minimum WordPress requirement to 6.9.
 * Updated minimum PHP requirement to 8.2.
 * Activation hook refactored to named function.
 * Replaced deprecated wp_http_validate_url() with wp_is_valid_url().
 * Dashicons enqueued conditionally to avoid redundant loading.
 * Added type hints and return types to all functions (PHP 8.2+).
 * Added PHPDoc blocks to all functions (WordPress-Docs standard).
 * Extracted post signature data to a cached helper function to avoid redundant 
   meta queries.
 * Restored function_exists() guard for delete_post_meta_by_key() in uninstall handler.

#### [0.4] – 2025-10-08

 * DID support added: did:key and did:web with Ed25519 JWS (detached).
 * Method selector per post.
 * DID field in user profile.
 * Uninstall options extended to remove DID and method meta.
 * Maintains full backward compatibility with OpenPGP flow.

#### [0.3] – 2025-10-03

 * Author badge with icon and fingerprint text linked to the verification result.
 * OpenPGP updated to 6.2.2.
 * Some corrections.

#### [0.1] – 2025-09-23

 * First version.

## 中繼資料

 *  版本 **0.5**
 *  最後更新 **3 個月前**
 *  啟用安裝數 **少於 10 次**
 *  WordPress 版本需求 ** 6.9 或更新版本 **
 *  已測試相容的 WordPress 版本 **6.9.4**
 *  PHP 版本需求 ** 8.2 或更新版本 **
 *  語言
 * [Catalan](https://ca.wordpress.org/plugins/signed-posts/)、[English (US)](https://wordpress.org/plugins/signed-posts/)、
   [Spanish (Chile)](https://cl.wordpress.org/plugins/signed-posts/)、及 [Spanish (Spain)](https://es.wordpress.org/plugins/signed-posts/).
 *  [將這個外掛本地化為你的母語版本](https://translate.wordpress.org/projects/wp-plugins/signed-posts)
 * 標籤:
 * [did](https://tw.wordpress.org/plugins/tags/did/)[openpgp](https://tw.wordpress.org/plugins/tags/openpgp/)
   [security](https://tw.wordpress.org/plugins/tags/security/)[signature](https://tw.wordpress.org/plugins/tags/signature/)
   [verification](https://tw.wordpress.org/plugins/tags/verification/)
 *  [進階檢視](https://tw.wordpress.org/plugins/signed-posts/advanced/)

## 評分

這個項目尚無任何評論記錄。

[Your review](https://wordpress.org/support/plugin/signed-posts/reviews/#new-post)

[查看全部使用者評論](https://wordpress.org/support/plugin/signed-posts/reviews/)

## 參與者

 *   [ Marc Armengou ](https://profiles.wordpress.org/marc4/)

## 技術支援

使用者可在技術支援論壇提出意見反應或使用問題。

 [檢視技術支援論壇](https://wordpress.org/support/plugin/signed-posts/)