ActivityPub

Deskripzioa

Sartu fedibertsoan ActivityPub pluginarekin eta zabaldu zure bloga jende gehiagorengana! Erakarri jarraitzaileak, igorri albisteak eta jaso iruzkinak ActivityPub-ekin bateragarriak diren plataformetako askotariko erabiltzaileekin.

With the ActivityPub plugin installed, your WordPress blog itself functions as a federated profile, along with profiles for each author. For instance, if your website is example.com, then the blog-wide profile can be found at @example.com@example.com, and authors like Jane and Bob would have their individual profiles at @jane@example.com and @bob@example.com, respectively.

Adibide bat: Nire Mastodon profilaren izena ematen dizut: @pfefferle@mastodon.social. Zuk bilatzen duzu, nire profila ikusten eta jarraitzeko sakatzen duzu. Orain, nik egiten ditudan bidalketa guztiak zure Etxea jarioan agertuko dira. Gauza bera ActivityPub pluginarekin, Nerea bilatu eta bere profila jarrai dezakezu: @nerea@adibidea.eus.

Behin Nerearen @nerea@adibidea.eus profila jarraitzen hasten zarenean, berak adibidea.eus blogean bidalketa bat argitaratzen duen bakoitzean, zure Etxea jarioan agertuko da. Era bertsuan, blog osoaren @adibidea.eus@adibidea.eus profila jarraitzen baduzu, egile guztiek argitaratutakoak jasoko dituzu.

Oharra: Inork ez badu zure egile edo blog profila jarraitzen, zure bidalketak ez dira ikusiko. Plugina ondo dabilela egiaztatzeko modu sinpleena zuk zure burua jarraitzea da. Mastodon profil bat baduzu, jarrai ezazu zure berri hau.

Plugina ondoko plataforma federatuetan probatu da, baina baliteke beste batzuetan ere ondo ibiltzea:

Kontuan izan beharreko gauza batzuk:

  1. Blog osoaren profila izan ahal izateko zure guneak berridatzi araua gaituta izan behar du. Zure guneak berridatzi araua gaituta ez badu ere, egileen profilak ibiliko dira.
  2. Egile bakarreko blog askok egile profilaren orrialdeak desgaitu edo birbidali egiten dituzte Yoast edo Rank Math bezala SEO pluginekin. Blogaren hasierako orrialdeak duen edukia ez bikoizteko egiten dute. Zure egile orrialdea honela desaktibatu baldin bada, ActivityPub egile profila ez da ibiliko. Horren ordez, zure egile profil orrialdeak aktibatu ditzakezu eta gero zure SEO pluginean egile orrialdea ez indizatzeko (noindex) aukera erabili. Era honetan, bilaketa motorrekin bikoiztutako edukiengatik izan zenitzakeen arazoak saihestu ditzakezu eta aldi berean ActivityPub egile profilak gaituta izan.
  3. Behin ActivityPub instalatutakoan une horretatik aurrera argitaratutako bidalketa berriak bakarrik egongo dira eskuragarri fedibertsoan. Era berean, ActivityPub erabiltzen denbora bat badaramazu ere, norbait zure gunea jarraitzen hasten bada, une horretatik aurrera argitaratzen diren bidalketak bakarrik ikusiko ditu. Inoiz ez dituzte lehenago argitaratutako bidalketa beraien Etxea jarioan ikusiko. Prozesu hau newsletter batera argitaratzearen antzekoa da. Newsletter batera harpidetzen bazara, hortik aurrerako emailak bakarrik jasoko dituzu, ez iragandako email zaharrak. ActivityPubekin, norbait zure gunea jarraitzen hasten bada, une horretatik aurrera argitaratzen dizun blog bidalketak bakarrik jasoko ditu.

Beraz, zeintzuk dira urratsak?

  1. Instalatu ActivityPub plugina.
  2. Zoaz zure pluginaren ezarpenen orrialdera eta moldatu itzazu ezarpenak zure gustura. Sakatu Gorde botoia prest dituzunean.
  3. Egile profilak erabiltzen ari bazara, ziurtatu zaitez blogaren egile profilen orrialdea gaituta dagoela.
  4. Zoaz Mastodonera edo beste edozein plataforma federatura, bilatu zure profila eta jarrai ezazu. Zure profila bi era hauetako batean egongo da: @zure_izena@adibidea.eus edo @adibidea.eus@adibidea.eus. Beraz, hori da bilatu beharko duzuna.
  5. Zure blogean argitaratu bidalketa berri bat.
  6. Mastodonetik, egiaztatu ezazu ea bidalketa berriak zure Etxea jarioan agertzen diren.

Oharra: Kontuan izan zure bidalketa berriek 15 minutu inguru behar dituztela federatutako jarioetan agertzeko. Hau, mezuak federatutako plataformetara programatutako lan batekin bidaltzen direlako gertatzen da. Honela, jarraitzaile asko izan ditzaketen erabiltzaileen kasua argitaratzen prozesua moztea saihesten da. Beraz, zerbait argitaratu eta jarraian beste aldean ikusten ez baduzu ez asumitu zerbait apurtuta dagoenik. Emaiozu denbora pixka bat. Kasu gehienetan, minutu batzuen buruan agertu egingo da eta dena behar bezala dabilela jakingo duzu.

Pantaila-argazkiak

  • The “Follow me”-Block in the Block-Editor
  • The “Followers”-Block in the Block-Editor
  • The “Federated Reply”-Block in the Block-Editor
  • A “Federated Reply” in a Post
  • A Blog-Profile on Mastodon

Blokeak

Plugin honek 14 blokeak eskaintzen ditu.

  • Posts and Replies Display a tab bar to filter between posts only and posts with replies on author archives.
  • Federated Reply Reply to posts, notes, and other content on the Fediverse directly from the block editor.
  • ActivityPub Stats Display your annual Fediverse stats as a shareable card.
  • ActivityPub Editor Integration Adds ActivityPub settings and controls to the WordPress block editor.
  • ActivityPub Dashboard Stats ActivityPub statistics dashboard widget
  • ActivityPub Reply Intent Handler Handles reply intents for federated conversations in the block editor.
  • Fediverse Extra Fields Display extra fields from Fediverse user profiles.
  • ActivityPub Post Format Suggestions Suggests optimal post formats for ActivityPub federation before publishing.
  • Fediverse Following Display the accounts you follow in the Fediverse on your website.
  • ActivityPub App Manage ActivityPub settings, followers, and federation from the WordPress admin.
  • Follow me on the Fediverse Display your Fediverse profile so that visitors can follow you.
  • Fediverse Followers Display your followers from the Fediverse on your website.
  • Fediverse Reactions Display Fediverse likes and reposts for your posts.
  • ActivityPub Command Palette Registers ActivityPub commands for the WordPress Command Palette.

Instalazioa

Follow the normal instructions for installing WordPress plugins.

Pluginaren instalazio automatikoa

To add a WordPress Plugin using the built-in plugin installer:

  1. Go to Plugins > Add New.
  2. Type “activitypub” into the Search Plugins box.
  3. Find the WordPress Plugin you wish to install.
    1. Click Details for more information about the Plugin and instructions you may wish to print or save to help setup the Plugin.
    2. Click Install Now to install the WordPress Plugin.
  4. The resulting installation screen will list the installation as successful or note any problems during the install.
  5. If successful, click Activate Plugin to activate it, or Return to Plugin Installer for further actions.

Pluginaren eskuzko instalazioa

There are a few cases when manually installing a WordPress Plugin is appropriate.

  • If you wish to control the placement and the process of installing a WordPress Plugin.
  • If your server does not permit automatic installation of a WordPress Plugin.
  • If you want to try the latest development version.

Installation of a WordPress Plugin manually requires FTP familiarity and the awareness that you may put your site at risk if you install a WordPress Plugin incompatible with the current version or from an unreliable source.

Egin zure gune osoaren babeskopia jarraitu aurretik.

WordPress plugina eskuz instalatzeko:

  • Download your WordPress Plugin to your desktop.
  • If downloaded as a zip archive, extract the Plugin folder to your desktop.
  • With your FTP program, upload the Plugin folder to the wp-content/plugins folder in your WordPress directory online.
  • Go to Plugins screen and find the newly uploaded Plugin in the list.
  • Klikatu Aktibatu berau aktibatzeko.

MEG

Luzeegia; ez dut irakurri

Plugin honek zure WordPress bloga Mastodon bezalako plataforma ezagunetara konektatzen du, zure bidalketak jende gehiagorentzako eskuragarriak eginez. Behin instalatuta, plataforma horietako erabiltzaileek zure bloga jarraitu ahal izango dute, zure bidalketa berriak beraiek jarioetan agertuz.

Zer da “ActivityPub for WordPress”

ActivityPub for WordPress adds Fediverse features to WordPress, but it is not a replacement for platforms like Friendica or Mastodon. If you’re looking to host a decentralized social network, consider using Mastodon or Friendica.

Why “ActivityPub”?

The name ActivityPub comes from the two core ideas behind the protocol:

  • Activity: It is based on the concept of activities, like “Create”, “Like”, “Follow”, “Announce”, etc. These are structured messages (usually in ActivityStreams format) that describe what users do on the network.
  • Pub: Short for publish or publication. It refers to the fact that this is a publish-subscribe (pub-sub) protocol — one user can “follow” another, and receive their published activities.

Put together, ActivityPub is a protocol for publishing and subscribing to activities, which enables decentralized social networking — where different servers can interact and users can follow each other across the Fediverse.

How do I solve…

We have a How-To section in the docs directory that can help you troubleshoot common issues.

Constants

The plugin uses PHP Constants to enable, disable or change its default behaviour. Please use them with caution and only if you know what you are doing.

  • ACTIVITYPUB_REST_NAMESPACE – Change the default Namespace of the REST endpoint. Default: activitypub/1.0.
  • ACTIVITYPUB_EXCERPT_LENGTH – Change the length of the Excerpt. Default: 400.
  • ACTIVITYPUB_MAX_IMAGE_ATTACHMENTS – Change the number of attachments, that should be federated. Default: 4.
  • ACTIVITYPUB_HASHTAGS_REGEXP – Change the default regex to detect hashtext in a text. Default: (?:(?<=\s)|(?<=<p>)|(?<=<br>)|^)#([A-Za-z0-9_]+)(?:(?=\s|[[:punct:]]|$)).
  • ACTIVITYPUB_USERNAME_REGEXP – Change the default regex to detect @-replies in a text. Default: (?:([A-Za-z0-9\._-]+)@((?:[A-Za-z0-9_-]+\.)+[A-Za-z]+)).
  • ACTIVITYPUB_URL_REGEXP – Change the default regex to detect urls in a text. Default: (www.|http:|https:)+[^\s]+[\w\/].
  • ACTIVITYPUB_CUSTOM_POST_CONTENT – Change the default template for Activities. Default: <strong>[ap_title]</strong>\n\n[ap_content]\n\n[ap_hashtags]\n\n[ap_shortlink].
  • ACTIVITYPUB_AUTHORIZED_FETCH – Enable AUTHORIZED_FETCH.
  • ACTIVITYPUB_DISABLE_REWRITES – Disable auto generation of mod_rewrite rules. Default: false.
  • ACTIVITYPUB_DISABLE_INCOMING_INTERACTIONS – Block incoming replies/comments/likes. Default: false.
  • ACTIVITYPUB_DISABLE_OUTGOING_INTERACTIONS – Disable outgoing replies/comments/likes. Default: false.
  • ACTIVITYPUB_DISABLE_REMOTE_CACHE – Disable remote media caching (avatars, media, emoji). Default: false. Replaces ACTIVITYPUB_DISABLE_SIDELOADING from 7.9.1.
  • ACTIVITYPUB_SHARED_INBOX_FEATURE – Enable the shared inbox. Default: false.
  • ACTIVITYPUB_SEND_VARY_HEADER – Enable to send the Vary: Accept header. Default: false.

Where can you manage your followers?

If you have activated the blog user, you will find the list of his followers in the settings under /wp-admin/options-general.php?page=activitypub&tab=followers.

The followers of a user can be found in the menu under “Users” -> “Followers” or under wp-admin/users.php?page=activitypub-followers-list.

For reasons of data protection, it is not possible to see the followers of other users.

Berrikuspenak

2026(e)ko urtarrilaren 28(a)
Great plugin with regular updates. Does what it says on the label, and does it well. It makes my WP posts look great in the fediverse and boost, replies, and likes quickly make their way back to my site.
2025(e)ko irailaren 10(a)
As someone working on the Korean translation of this plugin, I have seen first-hand how important it is for WordPress users to connect with the Fediverse. This plugin provides a bridge that makes such integration possible. Thanks to the developers, Korean users can now more easily explore and join the open social web. I deeply appreciate the effort, vision, and continuous improvements behind this project.
2025(e)ko abuztuaren 3(a)
I’ve installed and setup other ActivityPub servers usually some time & testing required along with tweaks. However with the WP ActivityPub plug-in it, surprisingly, functioned properly <gasp!> right after install. What a joy. Thank you.
2025(e)ko uztailaren 23(a)
Great plugin (actively maintained!), great support, a very nice way to join the Fediverse and automatically share posts and any kind of CPT to the Fediverse audience. I was initially sharing posts using my personal Mastodon account, but it’s much nicer to have your dedicated account for your blogs (and/or authors). Thanks for this plugin!
2025(e)ko ekainaren 6(a)
Why wouldn’t you want your blog to federate with Mastodon and all the other apps on the Fediverse? This plugin in such an important piece in the social web ecosystem. Install eyes closed.
Irakurri 40 berrikuspenak

Laguntzaileak eta Garatzaileak

“ActivityPub” software librea da. Ondoko pertsonek egin dizkiote ekarpenak plugin honi.

Laguntzaileak

ActivityPub 26 eskualde-ezarpenetara itzuli da. Eskerrik asko itzultzaileei beraien ekarpenengatik.

Itzul zaitez ActivityPub zure hizkuntzara.

Garapena interesatzen zaizu?

Araka kodea, begiratu SVN biltegia edo harpidetu garapen erregistrora RSS bidez.

Aldaketen loga

8.2.1 – 2026-05-01

Security

  • Hardened how the inbox processes large recipient lists in incoming activities.

Fixed

  • Fix monthly and annual Fediverse Stats emails being sent more than once per period when the scheduler ran multiple times.

8.2.0 – 2026-04-27

Security

  • ActivityPub REST endpoints no longer advertise credentialed cross-origin access. Browser-based clients using OAuth bearer tokens continue to work as before.
  • Aligned the deprecated signature verifier’s clock tolerance with the supported verifiers.
  • Blocked additional reserved IPv6 ranges from outbound request safety checks.
  • Decoded percent-encoded forms in the follower sync authority before the safety check.
  • Fail closed when an OAuth request can’t be tied to a client IP, instead of sharing one rate-limit bucket.
  • Hardened input handling for incoming federated activity types.
  • Hardened outbound request handling for third-party app connections and live activity streams.
  • Hardened outbound request safety to cover IPv6-only third-party hosts.
  • Per-IP rate limits now only trust the actual TCP peer by default, so an attacker on a directly-exposed site cannot bypass the cap by spoofing X-Forwarded-For or similar proxy headers. Sites behind a trusted reverse proxy (Cloudflare, Akamai, nginx) can opt the relevant header back in via the new “activitypub_client_ip_sources” filter.
  • Reject follower sync requests targeted at internal-network hosts at the route layer.
  • Required signatures on HEAD requests to peer-only endpoints.

Changed

  • Development tooling: require PHPUnit 9.6.33 or newer (security fix CVE-2026-24765). No runtime impact for end users.
  • OAuth public clients must now use PKCE by default, matching OAuth 2.1. Site operators can relax this via the activitypub_oauth_require_pkce filter if legacy clients need to connect.
  • Returned the standard rate-limit response from the OAuth token endpoint when too many requests are sent.

Fixed

  • Delete activities no longer bypass signature verification on endpoints that explicitly require it.
  • OAuth token revocation now verifies the caller owns the token being revoked.
  • Tighten HTTP signature verification: narrow the clock-skew window, reject signatures that carry no freshness timestamp, and cap unreasonable expiry times. Peers that sign without a Date or creation timestamp will no longer verify.
  • Trim dev-only configuration files from the plugin release package.

8.1.1 – 2026-04-22

Added

  • Added the activitypub_post_object_type filter so plugins can override the federated object type (Note, Article, Page) for a post.

Changed

  • Always flush rewrite rules at the end of a plugin migration so that users upgrading across multiple versions do not miss a flush.

Fixed

  • Fix the Fediverse stats widget on sites where the REST namespace is remapped, such as WordPress.com.
  • Harden the reactions API response so stored author names and URLs cannot introduce markup or non-HTTP schemes into the JSON output.
  • Stop hiding posts that contain a federated reply block from the main blog listing and the admin post list on sites that do not use the Posts and Replies block.

8.1.0 – 2026-04-21

Security

  • Add rate limiting to app registration to prevent abuse.
  • Fix blog actor outbox exposing private activities to unauthenticated visitors.
  • Restrict localhost URL allowance to local development environments only.
  • Verify that the signing key belongs to the same server as the activity actor.

Added

  • Add a “Posts and Replies” tab bar for author archives that filters between posts and replies, similar to Mastodon’s profile view.
  • Add a liked collection to actor profiles, showing all posts the actor has liked.
  • Add a seasonal starter pattern that suggests sharing Fediverse stats when creating a new post in December and January.
  • Add a stats block that displays annual Fediverse statistics as a card on the site and as a shareable image on the Fediverse, with automatic color and font adoption from the site’s theme.
  • Added activitypub_pre_get_by_id filter to allow plugins to register custom virtual actors resolved by ID.
  • Add EXIF metadata support for image attachments using Vernissage namespace.
  • Add new Fediverse Following Page and Profile Page block patterns.
  • Add OAuth server metadata and registration endpoint discovery to actor profiles.
  • Add real-time streaming for inbox and outbox updates via Server-Sent Events (SSE).
  • Add support for Block, Add (pin post), and Remove (unpin post) activities via Client-to-Server API.
  • Add support for check-in activities posted via compatible apps.
  • Add support for importing Starter Packs in both the Pixelfed and Mastodon formats.
  • Add tags.pub integration to supplement tag timelines with posts from across the Fediverse.
  • Support for ActivityPub Client-to-Server (C2S) protocol, allowing apps like federated clients to create, edit, and delete posts on your behalf.

Changed

  • Block patterns for follow, following, and profile pages are now only suggested when editing pages.
  • Fix notification pagination when using Enable Mastodon Apps: use date-constrained queries instead of truncating the shared notification pool, and expose $limit, $before_date, and $after_date as additional filter arguments so third-party handlers can fetch the correct window.
  • Improve the pre-publish format suggestion panel with clearer messages and a confirmation after applying a format.
  • Podcast episodes now respect the configured object type setting instead of always being sent as “Note”.
  • Show reaction action buttons even when a post has no reactions yet.

Fixed

  • ActivityPub endpoints that surface comment, reply, like, share, and remote-reply metadata now honor the parent post’s visibility setting.
  • Added validation for SSE access tokens passed via query parameter.
  • Fix account migration (Move) not working when moving back to an external account.
  • Fix a fatal error during activity delivery when the outbox item has been deleted.
  • Fix a fatal error when receiving activities with a non-string language property.
  • Fix a fatal array_keys(null) in Comment::get_comment_type_slugs() that could take down any request where a third-party plugin transitioned a custom comment type before add_comment_type() had been called.
  • Fix a missing script dependency notice on the admin page in WordPress 6.9.1 and later.
  • Fix BuddyPress @mention filter corrupting Fediverse Followers and Following blocks.
  • Fix cleanup jobs silently doing nothing on sites where purge retention options were not set.
  • Fix comments on remote posts being incorrectly held in moderation.
  • Fix double-encoded HTML entities in post titles on the Fediverse Stats dashboard.
  • Fixed an issue where quote authorization stamps could reference unrelated posts.
  • Fixed double-encoding of special characters in comment author names on updates.
  • Fixed emoji shortcode replacement to handle special characters in emoji names correctly.
  • Fix fatal error when other plugins hook into the user agent filter expecting two arguments.
  • Fix Fediverse Preview showing the standard web view instead of the ActivityPub preview for draft posts.
  • Fix OAuth authentication failing for local development clients using localhost subdomains.
  • Fix performance regression from reply-exclusion filter by skipping it for queries targeting non-ActivityPub post types.
  • Fix Reader feed failing to load with newer WordPress versions.
  • Fix remote actor avatars getting stuck on broken URLs when the original image becomes unavailable.
  • Fix Site Health check showing an empty error message when the WebFinger endpoint is not reachable.
  • Fix the Fediverse profile “Joined” date showing the oldest post date instead of when the site started federating.
  • Fix the Fediverse profile showing an inflated post count by excluding incoming comments from the total.
  • Fix Update handler using stale local actor data instead of the activity payload
  • Improved HTTP Signature validation for requests with a missing Date header.
  • Only allow S256 as PKCE code challenge method for OAuth authorization.
  • Prevent third-party plugin UI elements and scripts from appearing in federated content.
  • Require signed peer requests for the followers synchronization endpoint per FEP-8fcf.
  • Show a styled error page instead of raw technical output when an OAuth application cannot be reached during authorization.
  • Strip private recipient fields from all outgoing activities to prevent leaking private audiences.
  • Sync ActivityPub blog actor settings via Jetpack.
  • Use ap_actor post ID for remote account IDs instead of remapping URI strings.
  • Use safe HTTP request for signature retry to prevent requests to private IP ranges.
  • Validate emoji updated timestamps before storing them.

8.0.2 – 2026-03-17

Security

  • Prevent non-public posts (drafts, scheduled, pending review) from being accessible via ActivityPub.

8.0.1 – 2026-03-11

Changed

  • Simplify the follow page block pattern to avoid duplicate headings and improve accessibility.

Fixed

  • Fix dark sidebar colors appearing incorrectly with non-default admin color schemes.
  • Fix Fediverse Reactions block not aligning with post content in block themes.
  • Fix new posts being marked as modified on load, which prevented Gutenberg’s starter pattern modal from appearing.

8.0.0 – 2026-03-04

Security

  • Prevent private recipient lists from being shared when sending activities to other servers.

Added

  • Add a help section to interaction dialogs explaining the Fediverse and why entering a profile is needed.
  • Add a notice on the Settings page to easily switch from legacy template mode to automatic mode.
  • Add a pre-publish suggestion that recommends a post format for better compatibility with media-focused Fediverse platforms.
  • Add a Site Health check that warns when plugins are causing too many federation updates.
  • Add backwards compatibility for the ACTIVITYPUB_DISABLE_SIDELOADING constant and activitypub_sideloading_enabled filter from version 7.9.1.
  • Add bot account snippet that marks ActivityPub profiles as automated accounts, displaying a “BOT” badge on Mastodon and other Fediverse platforms.
  • Add Cache namespace for remote media caching with CLI commands, improved MIME validation, and filter-based architecture.
  • Add federation of video poster images set in the WordPress video block.
  • Add Locale from Tags community snippet.
  • Add optional Like and Boost action buttons to the Fediverse Reactions block, allowing visitors to interact with posts from their own server.
  • Add pre-built Fediverse block patterns for easy profile, follow page, and sidebar setup.
  • Add snippet for blockless fediverse reactions
  • Add wp activitypub fetch CLI command for fetching remote URLs with signed HTTP requests.

Changed

  • Improved active user counting for NodeInfo to include all federated content types and comments.
  • Improve language map resolution to strictly follow the ActivityStreams spec.
  • Superseded outbox activities are now removed instead of kept, reducing clutter in the outbox.
  • The minimum required PHP version is now 7.4.

Fixed

  • Accept incoming activities from servers that use standalone key objects for HTTP Signatures.
  • Fix a crash on servers where WordPress uses FTP instead of direct file access for media caching.
  • Fix a crash when receiving posts from certain federated platforms that send multilingual content.
  • Fix automatic cleanup of old activities failing silently on sites with large numbers of outbox, inbox, or remote post items.
  • Fix comment count to properly exclude likes, shares, and notes.
  • Fix follow button redirect from Mastodon not being recognized.
  • Fix modal overlay not covering the full screen on block themes.
  • Fix outbox invalidation canceling pending Accept/Reject responses to QuoteRequests for the same post.
  • Fix QuoteRequest handler to derive responding actor from post author instead of inbox recipient.
  • Fix reactions block buttons inheriting theme background color on classic themes.
  • Fix reactions block layout on small screens and remove unwanted button highlight when clicking action buttons.
  • Fix signature verification rejecting valid requests that use lowercase algorithm names in the Digest header.
  • Fix soft-deleted posts being served instead of a tombstone when the post is re-saved.
  • Improve compatibility with federated services that use a URL reference for the actor’s public key.
  • Improve handling of all public audience identifiers when sending activities to followers and relays.

See full Changelog on GitHub.