Skip to content

Common tasks

Step-by-step instructions for the things you’ll do most often. All of these are supported by the plugin as shipped; pages assume the block editor.

Add a listen, watch, read, or other kind post

Section titled “Add a listen, watch, read, or other kind post”
  1. Go to Posts → Add New Post.
  2. Insert the matching card block from the Post Kinds for IndieWeb in Block Themes inserter category (Listen Card, Watch Card, Read Card, Checkin Card, Play Card, and so on).
  3. Search for the media in the card (or use the Media Lookup block for a universal search across services), or fill fields manually.
  4. Publish. The post’s kind is set automatically from the first card block in the post; a manual kind choice in the Post Kind panel is never overridden.

Media Lookup block showing search results

For kinds that have no dedicated card (note, article, event, photo, video, review, recipe) or any post you want to label:

  1. In the post editor sidebar, open the Post Kind panel.
  2. Pick the kind from the grid.
  3. Publish. The post gets microformats2 markup for that kind and appears on its /kind/<slug>/ archive.

You can also assign kinds from the Kinds column in quick edit on the Posts list.

  1. Go to Reactions → API Connections.
  2. Pick the service (TMDB for movies/TV, RAWG or BoardGameGeek for games, Hardcover or Google Books for books, and so on). Each card links to the provider’s sign-up page.
  3. Paste the credential(s) and save, then use the connection test to confirm.

MusicBrainz (music) and Open Library (books) work without keys.

Add a check-in with controlled location privacy

Section titled “Add a check-in with controlled location privacy”
  1. Insert a Checkin Card in a new post.
  2. Search for the venue (OpenStreetMap works without a key; Foursquare needs an API key) or enter it manually.
  3. Set the card’s location privacy — public, approximate, or private — or rely on the default from Reactions → Settings → Checkin.
  4. Publish. Check-ins show the venue, address, map and coordinates to everyone unless the privacy is private, which hides them. Approximate limits only geotagged posts without a venue, which then show the place name, city, region and country.

Checkin Card with location and venue details

Three published check-ins showing how each privacy level redacts location detail

Add one of these blocks to any post or page:

  • Check-in Dashboard — grid, map, or timeline of check-ins with optional stats and filters.
  • Check-ins Feed — a recent-check-ins list with optional map and column settings.
  • Venue Detail — one venue’s info, map, and recent check-ins there.
  1. Connect the service under Reactions → API Connections (for example Last.fm, Trakt, Hardcover, Readwise, Foursquare).
  2. Go to Reactions → Import.
  3. Use Preview to check what would be imported, then Start Import.
  4. Large imports run in the background; watch progress under Active Imports or via the admin notice. Re-sync fetches new items later.

Running an import again skips listen, watch and read items that are already on your site in any status, including drafts and trash. To import one of those items again, delete its post permanently.

Subscribe to everything, including imports

Section titled “Subscribe to everything, including imports”

Your site’s normal feeds leave out bulk-imported posts. The firehose feed includes them:

  • /firehose or /feed/firehose/ — standard RSS2, everything your normal feed carries plus imported posts.
  • ?feed=firehose works too, on any permalink setting.

Point a feed reader at it to follow your complete activity, imports and all. If it returns 404 after an update, see Troubleshooting.

Section titled “Give kind posts a featured image automatically”

Six media kinds set their artwork as the post’s featured image when the post has none: listen and jam (album cover), watch (poster), read (book cover), play (game cover), and check-in (venue photo).

  • An image you set yourself always wins — the plugin never replaces it, and it respects your removing the automatic one.
  • The same artwork feeds Yoast SEO’s schema graph as the primary image when Yoast finds none itself.
  • To turn the behavior off: add_filter( 'pkiw_set_featured_from_artwork', '__return_false' );
  • To backfill posts that existed before this feature: wp postkind featured-artwork backfill (add --dry-run to preview).
  1. Go to Reactions → Webhooks.
  2. Copy the webhook URL for your service (Plex, Jellyfin, Trakt, ListenBrainz, or generic) into that service’s webhook settings.
  3. Generate and configure the secret key so deliveries are signature-verified.
  4. Confirm incoming events in the Webhook Log; posts are created automatically as you play or watch things.

Turn on POSSE syndication to Last.fm, Trakt, or Foursquare

Section titled “Turn on POSSE syndication to Last.fm, Trakt, or Foursquare”

POSSE = Publish on your Own Site, Syndicate Elsewhere. Nothing is sent until you enable it.

  1. Connect the target service under Reactions → API Connections (Last.fm authorization, Trakt OAuth, or Foursquare OAuth).
  2. Enable the matching toggle: Scrobble to Last.fm (Listen tab), Sync to Trakt (Watch tab), or Sync to Foursquare (Checkin tab).
  3. Publish a post of that kind; check Reactions → Syndication for its status, or use “Syndicate Now” on skipped posts.
  1. Install and configure the separate Micropub plugin and an IndieAuth setup (for example the IndieAuth plugin).
  2. Sign in to a Micropub app with your site URL and publish.
  3. Post Kinds for IndieWeb in Block Themes converts the incoming post into the right card block and assigns the kind (it detects listens, watches, reads, check-ins, RSVPs, likes, reposts, bookmarks, replies, and more, and handles photos and geo: locations).
  1. Go to Reactions → Settings → General.
  2. Set Default category (or “— None —” to disable). It’s applied once at first save to stream-shaped kind posts, and you can still remove it per post.
  1. Go to Reactions → Settings → General.
  2. Leave Sync Post Formats to Kinds on (the default) and adjust the mapping table if you want different pairings (for example Audio → listen, Link → bookmark).
  1. Publish a kind post.
  2. Visit pin13.net/mf2 and enter the post URL.
  3. The parser shows the detected microformats. What you want is the kind’s property (u-listen-of, u-like-of, u-in-reply-to, p-rsvp, and so on) nested inside the post’s h-entry — not sitting beside it.

The plugin supplies the h-entry root itself on single posts, so this works on any block theme — including ones whose single template never calls post_class(), such as Twenty Twenty-Five and Twenty Twenty-Four. If your theme already provides the root, the plugin steps aside rather than nesting a second one.

If the property parses outside the h-entry

Section titled “If the property parses outside the h-entry”

On 1.1.0 and earlier the root came only from post_class(), so on those themes the card parsed as a standalone top-level h-cite and the property never attached. Updating to 1.5.0 or later fixes it. If you see it on a current version, parse the post’s archive URL as well (/kind/listen/, for example) and open an issue with both results — that pair tells us whether the theme or the plugin is at fault.

  1. Go to Reactions → Settings → Tools.
  2. Use Clear API Cache, Clear Metadata Cache, or Clear All Caches — useful when a lookup returned stale or wrong metadata.

Route activity kinds into a stream instead of the main archive

Section titled “Route activity kinds into a stream instead of the main archive”

For theme-savvy users: the plugin can classify kinds as “stream” (short activity posts) vs “main” (long-form) without ever filtering your queries — your theme decides what to do with the signal.

  1. Add the pkiw_stream_kinds filter in your theme or a small plugin, per the readme example:

    add_filter( 'pkiw_stream_kinds', fn() => [ 'checkin', 'eat', 'drink', 'listen', 'jam' ] );
  2. To promote an individual post back to the main archive, use the Promote to main archive toggle in the editor’s Post surface panel (or the pkiw-promote Micropub property).

  3. After a bulk import, run wp postkind surfaces backfill once (WP-CLI).