Title: Signed Posts
Author: Marc Armengou
Published: <strong>4. oktober, 2025</strong>
Last modified: 7. marts, 2026

---

Søg plugins

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

# Signed Posts

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

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

 * [Detaljer](https://da.wordpress.org/plugins/signed-posts/#description)
 * [Vurderinger](https://da.wordpress.org/plugins/signed-posts/#reviews)
 *  [Installation](https://da.wordpress.org/plugins/signed-posts/#installation)
 * [Udvikling](https://da.wordpress.org/plugins/signed-posts/#developers)

 [Support](https://wordpress.org/support/plugin/signed-posts/)

## Beskrivelse

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.

## Installation

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

## FAQ

### 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`.

## Anmeldelser

Der er ingen anmeldelser for denne widget.

## Bidragsydere & udviklere

“Signed Posts” er open source-software. Følgende personer har bidraget til dette
plugin.

Bidragsydere

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

“Signed Posts” er blevet oversat til 3 sprog. Tak til [oversætterne](https://translate.wordpress.org/projects/wp-plugins/signed-posts/contributors)
for deres bidrag.

[Oversæt “Signed Posts” til dit eget sprog.](https://translate.wordpress.org/projects/wp-plugins/signed-posts)

### Interesseret i udvikling?

[Gennemse koden](https://plugins.trac.wordpress.org/browser/signed-posts/), tjek
[SVN repository](https://plugins.svn.wordpress.org/signed-posts/), eller abonner
på [udviklerloggen](https://plugins.trac.wordpress.org/log/signed-posts/) via [RSS](https://plugins.trac.wordpress.org/log/signed-posts/?limit=100&mode=stop_on_copy&format=rss).

## Ændringslog

#### [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.

## Meta

 *  Version **0.5**
 *  Senest opdateret **1 måned siden**
 *  Aktive installationer **Færre end 10**
 *  WordPress-version ** 6.9 eller højere **
 *  Testet op til **6.9.4**
 *  PHP-version ** 8.2 eller højere **
 *  Sprog
 * [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/) og [Spanish (Spain)](https://es.wordpress.org/plugins/signed-posts/).
 *  [Oversæt til dit sprog](https://translate.wordpress.org/projects/wp-plugins/signed-posts)
 * Tags
 * [did](https://da.wordpress.org/plugins/tags/did/)[openpgp](https://da.wordpress.org/plugins/tags/openpgp/)
   [security](https://da.wordpress.org/plugins/tags/security/)[signature](https://da.wordpress.org/plugins/tags/signature/)
   [verification](https://da.wordpress.org/plugins/tags/verification/)
 *  [Avanceret visning](https://da.wordpress.org/plugins/signed-posts/advanced/)

## Bedømmelser

Der er endnu ikke indsendt nogen anmeldelser.

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

[Se alle anmeldelser.](https://wordpress.org/support/plugin/signed-posts/reviews/)

## Bidragsydere

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

## Support

Har du noget at sige? Har du brug for hjælp?

 [Vis supportforum](https://wordpress.org/support/plugin/signed-posts/)