Skip to content

Release 1.2.21 — Font Awesome never loaded alongside Elementor - #349

Merged
puikinsh merged 1 commit into
masterfrom
release/1.2.21
Aug 11, 2026
Merged

Release 1.2.21 — Font Awesome never loaded alongside Elementor#349
puikinsh merged 1 commit into
masterfrom
release/1.2.21

Conversation

@puikinsh

Copy link
Copy Markdown
Member

Cuts 1.2.21 with the fixes behind the broken demo at https://colorlibhub.com/shapely/.

What was wrong

The demo had two independent faults. The first was a PHP fatal in the companion
plugin's Portfolio widget, already fixed and released as Shapely Companion
1.2.12
. This PR carries the second.

Font Awesome never loaded. The theme enqueued its Font Awesome 6 under the
generic font-awesome handle. WordPress keeps only the first registration of a
handle, and Elementor registers font-awesome for the Font Awesome 4.7 it
bundles — so on the demo, and on any site running Elementor, the theme's icon
font was silently dropped:

id='font-awesome-css' href='.../elementor/assets/lib/font-awesome/css/font-awesome.min.css?ver=4.7.0'

The theme's markup uses fa-brands, fa-solid, fa-x-twitter and
fa-mobile-screen, none of which exist in Font Awesome 4, so the social links,
search button, menu and pagination arrows all rendered as blank boxes.

Reproduced locally by registering font-awesome at priority 1 the way Elementor
does, then counting the theme's stylesheet on the page:

theme FA6 stylesheets on page
before 0
after 1

The customizer had the same problem plus a broken path. The vendored Epsilon
framework enqueued EPSILON_URI . '../../assets/css/fontawesome6/all.min.css',
which resolves to .../shapely/inc/assets/css/... — one directory short of the
theme root, and a file that has never existed. So the customizer 404'd on its
own icons regardless of the handle collision.

Also in this release

  • Related posts on portfolio items returned the wrong posts when the portfolio
    taxonomies are unregistered — wp_get_object_terms() returns a WP_Error
    there, and ! empty() is true for an object, so it went straight into
    tax_query.
  • Regenerated languages/shapely.pot, which predated the text domain
    unification and was missing 86 strings.
  • Added tools/check-version.mjs. readme.txt had drifted to 1.2.19 while the
    theme shipped 1.2.20 because nothing compared the four version files.
  • Fixed make-pot.mjs emitting Project-Id-Version: Shapely 1.2.20 1.2.20.
  • Fixed the coding-standards CI job, which had been failing to install PHPCS
    rather than checking anything.

Verification

npm run verify clean (0 errors), php -l across 85 files, build produces a
243-file zip with no developer files and version 1.2.21 throughout.

Note for child themes: anything calling wp_dequeue_style( 'font-awesome' ) to
swap the icon set needs the new shapely-font-awesome handle. The theme's other
generic handles (bootstrap, flexslider, owl.carousel) carry the same
collision risk but are deliberately left alone — they are not currently broken
anywhere, and renaming them would break dequeues for no present benefit.

Ships the two Font Awesome fixes found while diagnosing the demo, plus the
related-posts WP_Error guard and the regenerated POT already on master.

Also adds tools/check-version.mjs and wires it into `verify` and `prebuild`.
The theme keeps its version in four files and nothing checked that they
agreed -- readme.txt's Stable tag had been sitting at 1.2.19 while the theme
shipped 1.2.20, and that is exactly the kind of drift this catches.

While regenerating the POT, fixed make-pot.mjs passing "Shapely <version>" as
--package-name. WP-CLI reads the version from style.css and appends it itself,
so every generated POT carried the doubled "Project-Id-Version: Shapely 1.2.20
1.2.20".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@puikinsh
puikinsh merged commit 401b248 into master Aug 11, 2026
10 checks passed
@puikinsh
puikinsh deleted the release/1.2.21 branch August 11, 2026 07:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant