Releases: orbivision/soames-wordpress-plugin
Release list
v1.2.0
Added
-
Blog Image field on posts (ORBI-64). A dedicated per-post image, shown in the single
post's sidebar above Recent Posts — where the post's featured image used to render.
Stored as an attachment ID insoames_blog_image_idand exposed asblogImageon the
PostGraphQL type, resolved to a full-size URL at query time so it survives
media-library URL changes. Modelled onsoames_hero_bg_id.Registered for
postonly, and soblogImageis onPostalone: this is a blog
concept, and registering it forpagewould put a meaningless control on every page.There is deliberately no featured-image fallback. Leave it blank and the post shows no
sidebar image at all. This frees the featured image for other uses — it still drives hero
backgrounds via the theme's fallback chain, which is unchanged. Existing posts therefore
show no sidebar image until a Blog Image is set on each one; that's a content step, not a
defect.Needs
soames-astro-theme>= 0.1.24, which carries the matching renderer. This pairing
is stricter than usual in one direction: that theme addsblogImageto its posts query, and
an unknown GraphQL field throws during the build — so a site on >= 0.1.24 requires this
plugin version. Upgrade the plugin first, then the theme.
Fixed
- The sidebar image no longer overflows its column (ORBI-64; fixed theme-side in 0.1.24).
It rendered at its intrinsic WordPress width — 1600px inside a ~440px column — and was
clipped at the viewport edge. Noted here because the two halves ship together.
v1.1.0
Added
-
Soames Icon Header block (ORBI-63). A full-width gray band with an icon tile beside a
title / subtitle / meta stack — the shape a résumé or timeline entry wants. Emits
wp-block-soames-icon-headercarryingdata-image,data-title,data-subtitleand
data-meta.It exists because that band was previously hand-written as a raw
<section class="soames-section-subhead">in post content, and the theme's built-in-block
fallback (ORBI-59) now constrains any unmapped top-level element to the content column — so
the band stopped stretching edge to edge. The theme skips wrapping anything classed
wp-block-soames-*, so moving the markup into a real block restores the full-width band by
construction, without changing that fallback for anything else.Needs
soames-astro-theme>= 0.1.21, which carries the matching renderer. Against an
older theme the block emits its div and nothing renders it — an empty gap, not an error.
Changed
- Block counts in
tests/e2e/admin.spec.ts(10 → 11 instances, 8 → 9 registered types) to
account for the new block. Both are deliberate guards against the suite silently falling
behind the plugin, and both failed before being updated.
v1.0.1
Fixed
-
Knowledge Base articles could not be added to a navigation menu. On Appearance → Menus
the "Knowledge Base" panel was missing, with no way to reach it short of knowing to tick it
under Screen Options.Not a misconfiguration and not a WordPress 7.0 regression: the first time any user opens the
Menus screen, core'swp_initial_nav_menu_meta_boxes()hides every panel except a hardcoded
four — page, post, custom links, category — and writes the rest into that user's
metaboxhidden_nav-menus. Every custom post type is hidden,docsincluded, despite
show_in_nav_menus => true. The list has no filter, so a plugin cannot opt into it.It bites more than once because the value is stored per user, and
get_user_option()is
blog-prefixed — so on multisite each site in the network starts hidden again.The plugin now un-hides the panel once per user and records that it has done so, leaving
the checkbox under the user's control from then on. Covered bytests/e2e/nav-menus.spec.ts,
including that a deliberate re-hide is respected.
v1.0.0
Soames is now a single plugin. The companion WordPress theme is no longer required: its
front-end redirect and its theme-support declarations moved here (ORBI-58), so installing
Soames is WPGraphQL → Soames, and you keep whatever theme you like. This mirrors how
Faust.js handles headless redirection.
Upgrading from 0.9.0
Nothing to do. The redirect takes over automatically and behaves the same, so the companion
theme becomes inert whether or not it stays active. You can switch to any theme at your
convenience — it will never render, because the redirect runs before template loading.
Added
- Front-end redirection in the plugin (
includes/frontend-redirect.php), on
template_redirect. Posts, pages and Knowledge Base articles redirect to their matching
address on the front-end site; everything else goes to its home page. - A "Front-end redirection" setting under Soames → Settings, on by default. Turn it off to
make WordPress serve its own theme again while debugging. It has no effect until a Frontend
Site URL is set. - A
soames_frontend_redirect_targetfilter — the escape hatch for requests the built-in
exclusions don't anticipate. Return''to leave a request alone. redirect.spec.ts— 13 e2e tests covering the mapping and, more importantly, every
exclusion: GraphQL, REST, wp-admin, previews,robots.txt, and both off-switches.
Fixed
- Posts redirected to a hardcoded
/blogregardless of the site's actual Posts page. The
Astro front end derives that base from WordPress's "Posts page" setting, so any install
using a different slug —news,articles— sent visitors to a URL the front end never
generates. Both sides now read the same setting, with the sameblogfallback. - Knowledge Base articles lost their path. The theme handled only posts and pages, so a
/docs/<slug>article fell through to the catch-all and landed on the front end's home
page. Any single item now keeps its path.
Changed
- All redirects are now 302, including the catch-all the theme issued as a 301. The
destination is a user-configurable setting, and a 301 is cached hard by browsers and CDNs —
changing the Frontend Site URL later would strand everyone who had hit the old one. post-thumbnailssupport is declared by the plugin onafter_setup_theme. It's theme-level
in WordPress, so without it the featured-image box vanishes when you leave the companion
theme.custom-logosupport was not carried over. Soames serves its logo from its own
soames_logo_idsetting, and nothing read thecustom_logotheme mod.
v0.9.0
First versioned release. Everything below shipped continuously to a single production
install before this plugin had a version line at all — the header read 1.0.0 throughout,
across roughly twenty merged projects, so it told you nothing. This release restarts the line
honestly at 0.9.0 and reserves 1.0.0 for the first public download (ORBI-57).
Entries are grouped by area and tagged with the ORBI project that introduced them; they are
not in release order, because there were no releases.
Added
- Gutenberg blocks — the
soames/*block family, all dynamic (save: null+
render_callback), emittingwp-block-soames-*markup the Astro theme maps to components
(ORBI-17). Migrated to Block API v3 (ORBI-28).- Icon List: grouped editor UI with a Media Library picker (ORBI-20), size setting
small/medium/large (ORBI-49). - Gallery Menu: shared grouped editor (ORBI-20), compact view setting (ORBI-44).
- Text List: refactored into a dynamic item repeater (ORBI-42).
- Feature: Media Library image picker and an HTML body textarea (ORBI-43).
- Hero Header: dedicated title and caption settings, with HTML allowed in the title
(ORBI-52).
- Icon List: grouped editor UI with a Media Library picker (ORBI-20), size setting
- Knowledge Base (
docs) custom post type, self-registered in the plugin after weDocs was
evaluated and dropped for breaking the block editor (ORBI-27). Rebranded in the admin as
"Knowledge Base"/"Article" and nested under the Soames menu, with the post-type key, slugs,
and GraphQL fields unchanged (ORBI-36, ORBI-37). Drag-to-reorder in wp-admin (ORBI-38). - Site Assets settings — logo, favicon, contact blurb, company name and a show-in-header
toggle, exposed over a REST endpoint the theme reads (ORBI-12). - Documentation page setting driving the
/docs/hero (ORBI-31). - Dedicated hero background image per page, with single posts and docs inheriting their
parent's hero (ORBI-41). - Author profile pictures — a local avatar picker overriding Gravatar via
pre_get_avatar_data, which also covers WPGraphQL'savatar { url }(ORBI-53). - Automatic rebuilds — POST to a user-configured build hook URL on content publish
(ORBI-32). - Header and footer nav menu locations, moved here from the companion theme (ORBI-14).
- Custom admin menu icon — monochrome Soames mark (ORBI-46).
- End-to-end test suite — the repo's first CI. Contract tests over block markup, WPGraphQL
fields, the settings REST shape, avatar resolution, and admin pages, against a real
WordPress in Docker via@wordpress/env(ORBI-54). bin/build-zip.sh— allowlist-based installable zip, with a guard that fails if
dev-only paths leak in (ORBI-54). Now also ships theLICENSE(ORBI-57).LICENSE(GPL-2.0-or-later) — the plugin had been distributed without one (ORBI-57).
Changed
- Plugin header completed for distribution:
Requires at least,Tested up to,
Requires Plugins: wp-graphql,License,License URI,Text Domain,Author URI
(ORBI-57). - Asset cache-busting now derives from the plugin version via
soames_asset_version()
instead of three hardcoded'1.0.0'literals and onefilemtime()call. mtime is still
used underWP_DEBUGfor local iteration, but never in a released install, where it would
differ per install and change on every redeploy (ORBI-57). - All Soames functionality migrated out of the companion WordPress theme's
functions.php
into this plugin, leaving the theme with theme-support declarations and its redirect
(ORBI-12).
Fixed
add_post_type_support( 'page', 'excerpt' )moved out of theinithook so WPGraphQL picks
it up regardless of hook order.- Block category registration corrected and
useBlockPropsremoved (ORBI-17). - Icon List reorder/remove controls made usable in the Block API v3 iframed editor, which
doesn't load Dashicons into the canvas and rendered icon-only buttons invisible (ORBI-49). - Feature block content wrapper is a
<div>, not a<p>— the block inlines HTML, which is
invalid inside a paragraph (ORBI-43). - Soames admin submenu order (ORBI-37).