We are developing a WordPress integration with minimal dependence on third-party plugins, to ensure control, security, and autonomy. At the same time, the WordPress ecosystem is increasingly shifting toward a business-driven model: basic plugins with limited functionality, and “professional” versions hidden behind paywalls.
The Plugin Loader allows the integration of more complex functionalities — organized across multiple files — within a structured and maintainable setup, and also makes it possible to remove them.
El Carousel Slider Block no té suport per Lightbox integrat. La nostre sol·lució permet veure les imatges afegides com a diapositives en una progressió natural dins d'un overlay tipus Lightbox, tal com sí que ho permet, de manera nativa, el Gallery Block.
Aquesta és la nostra solució…
The Gutenberg editor still presents notable limitations in fine-grained content editing. It is not possible to assign a different font to a word within a paragraph, nor to insert inline images.
This may seem like a minor detail, but it becomes critical in specific cases — for example, inserting an image within a footnote. The absence of this functionality led us to develop a custom solution.
We implemented it as a lightweight extension, respecting the structure and logic of the WordPress block system.
In addition, we have added support for greater control over the content container within a Lightbox: setting the background is essential, and being able to do so easily and quickly even more so.
We have added a small frontend script that improves the user experience when opening sections of the accordion block, ensuring that the active content is always properly positioned to facilitate continued reading.
The Language Router adds multilingual support to a single-site WordPress installation. It enables the definition and maintenance of equivalences between pages and other content types (currently pages and posts), as well as importing content from the original version for translation.
On the frontend, it includes a language switcher and fulfills essential SEO requirements — including canonical links, hreflang tags, and permalink integration — along with support for categories, pagination, and more.
This plugin allows small and medium-sized websites to implement multilingual support without relying on plugins that often introduce paywalls and unnecessary complexity.
Today, with the support of AI, maintaining a multilingual website mainly requires a simple and transparent system to manage structure and equivalences — not much more.
This may not be strictly necessary, but we find the overkill and overhead associated with fonts like Font Awesome — and their CSS-based integration — quite problematic.
We developed a small module that allows loading an icon file, which can be extracted from Font Awesome (in compliance with its license — attribution must be included in the SVG code).
This results in a lightweight icon set that can also be directly embedded as links.
Preparing the icon file requires additional scripts in Python or Node. We provide a very simple Node script, build-icons.js, to prepare a set of Font Awesome icons for use with the SVG Icon Button Block.
Building a multilingual WordPress site is, all too often, an exercise in dependency: paid plugins or complex multisite setups.
In our case, with a small website and solid language skills, we chose to develop our own solution. Browsers already handle automatic translation for languages we don’t speak; what matters is a clear and reliable way to switch between languages.
For this, we use the Multisite Language Switcher (MSLS), one of the few genuinely free plugins — but, as often happens, it falls short.
This is our solution: a small piece of code that adds flexibility and addresses some of the shortcomings of the current WordPress implementation.
Everything is published on GitHub. Use the code at your own risk.
All of this has been developed with the support of artificial intelligence, but it required extensive review, correction, and time to reach a minimally acceptable and reliable result.
The code remains improvable: it currently serves our needs, but we cannot guarantee it will work in other contexts.
Update: we initially made an unfortunate choice with WordPress Multisite. Many plugins do not function properly in multisite environments and handle — and especially store — data separately for each instance.
Above you’ll find a more complete solution — a “WPML for the poor”: the Language Router Plugin, which also includes its own language switcher.
