Home Blog

Open Channels FM: BackTalk on Digital Patience, the Power of Story, Platform Longevity, and What Your Brand Says When You’re Not in the Room

0

BackTalk on topics like website wait times, storytelling in case studies, platform longevity, and brand positioning in today’s digital landscape.

Open Channels FM: Artificial [fill in the blank]

0

AI: super-smart guesser or just a robot with a flair for the dramatic? Join our hosts as they grill gadgets, predict the future, and ponder if their devices need bedtime stories.

What’s New in WordPress 7.0? (Features & Screenshots)

0

WordPress 7.0 is finally here 🥳, and we’ve been testing it since the early beta.

It’s the first major release of 2026, and it’s a big one, with a brand-new AI Connectors screen, responsive block controls, and a refreshed admin experience that makes the dashboard feel like a modern web app.

Whether you run a small blog or a large multi-author site, WordPress 7.0 brings changes that will affect the way you create and manage content.

A deep dive into WordPress 7.0 new features and screenshots

ℹ️ Important: As always, please don’t forget to create a complete WordPress backup before updating to the new release. If you’re not using managed WordPress hosting, you’ll need to run the update yourself.

Here’s everything that’s new in WordPress 7.0:

📌 Note: Real-time collaboration (RTC) was originally planned for WordPress 7.0, and we covered it in our What’s Coming in WordPress 7.0 post. It was pulled before release because the core team wasn’t confident the current approach was robust enough, citing concerns around race conditions, server load, and memory efficiency.

The feature is still in active development and can be tested via the Gutenberg plugin. We’ll cover it properly when it ships.

Connect WordPress to AI with the New Connectors Screen 🤖

WordPress 7.0 now gives you a central place to connect your site to AI services with no third-party plugin required.

A new Settings » Connectors screen lets you install and configure AI provider packages directly from your WordPress dashboard.

AI connectors in WordPress 7.0

Think of it like a plugin directory, but specifically for AI. You choose your provider, enter your credentials once, and every plugin or theme that supports the AI API can tap into that connection automatically.

At launch, three providers are available: OpenAI (ChatGPT), Google (Gemini), and Anthropic (Claude). Once a connector is installed and authenticated, any plugin that uses the WordPress AI API will work with your chosen provider, without you needing to configure API keys in multiple places.

There are a ton of WordPress AI plugins that can now use your selected AI platform to provide AI features. Until now many companies were either asking you to enter your API keys or purchase credits from them.

The connectors store credentials securely and handle communication between WordPress and the AI provider in a standardized way.

Pro Tip: If you’d prefer to disable all AI features entirely — for privacy reasons or to keep things simple — you can add define( 'WP_AI_SUPPORT', false ); to your wp-config.php file. This turns off all LLM-related features across the site.

A Refreshed Admin Experience ✨

The WordPress admin area has a new look in 7.0, including updated color schemes, cleaner typography, and smoother transitions between screens.

WordPress admin design refresh

It’s not a complete redesign, but in practice this means less waiting as you move between screens. For example, clicking from Posts to Settings to the editor no longer triggers a full page reload each time.

The cleaner layout and higher-contrast typography also make it easier to find what you’re looking for, which adds up when you’re publishing frequently or jumping between settings.

WP 7.0 Design uplift with smoother transitions between admin screens

Related: See the evolution of the WordPress user interface.

Command Palette Is Now Available Everywhere

One of the most useful additions is that the Command Palette, which was previously only available inside the block editor, is now accessible from anywhere in the admin.

Just press ⌘K on Mac or Ctrl+K on Windows/Linux to open it from any screen.

Command palette

From there, you can quickly navigate to any page, open settings, search posts, or run common actions without touching the mouse. If you’ve ever used the command palette in VS Code or Figma, then this will feel immediately familiar.

Note: This is entirely optional. If keyboard shortcuts aren’t your thing, you don’t need to learn this because all the same actions are still available through the normal menus. It’s a power-user shortcut for people who want to move faster.

Responsive Block Visibility by Device 📱

WordPress 7.0 introduces a feature that page builder plugins have offered for years, now built right into the core block editor: the ability to show or hide any block depending on whether a visitor is on a phone, tablet, or desktop.

Whether you want to display a larger image on desktop and swap it for a compact version on mobile, or hide a sidebar element entirely on smaller screens, you can now do all of this without touching a line of CSS.

Hide a block

To use it, select any block and look for the new visibility options in the block toolbar or the block inspector sidebar.

A visibility modal lets you choose which device types — desktop, tablet, or mobile — to hide the block on. Any changes you make only affect the viewports you choose, and other screen sizes are untouched.

Hide block options

Here are some more details:

  • Blocks with active visibility rules show a small device icon in List View, so you can see at a glance which blocks have restrictions applied.
  • Visibility controls are also available from the Command Palette.
  • You can apply different styles per breakpoint. For example, different font sizes or spacing on mobile, and even customize where breakpoints are defined.

For more details, see the block visibility dev note.

Smarter Visual Revisions 🕓

WordPress has had a revisions system for years, but 7.0 makes it much easier to see what actually changed between versions.

You can now compare two revisions side by side in the editor, with color-coded overlays highlighting every difference.

Here’s a summary of the color-coding system:

  • Green outlines = blocks that were added
  • Red outlines = blocks that were removed
  • Yellow outlines = blocks with modified settings
  • For text, green with underline = added text, red with strikethrough = removed text
Visual revisions in WordPess 7.0

The sidebar now also shows changed block attributes alongside the visual diff, so you can see exactly what settings were changed, not just where.

This is a major improvement for anyone who manages a multi-author site or wants to review content changes before publishing.

But it’s just as useful if you’re the only person editing. It makes it much easier to spot what you accidentally deleted or changed when you want to roll back to an earlier version.

Custom CSS for Individual Blocks ✏️

Before WordPress 7.0, making a small one-off style tweak to a single block required a workaround, usually involving the Additional CSS panel, Global Styles, or manually adding a custom CSS class.

WordPress 7.0 changes that with a new Custom CSS field built directly into the block inspector.

Just select any block, open the Advanced panel in the inspector sidebar, and you’ll find a new Custom CSS field.

Whatever you type there applies only to that specific block instance, so nothing else on the page or site is affected. Changes also render live in the editor so you can see exactly what you’re doing before saving.

Block level custom CSS

A few things worth knowing:

  • Only user roles with the edit_css capability — typically Administrators and Editors — will see this field.
  • The CSS is stored inside the block itself, so it travels with the block if you duplicate or move it.
  • Block developers can opt out of this feature in their block.json if needed.

If you’ve ever wanted to make one button a different color, or add a bit of extra spacing around a single image without affecting anything else on the page, this is now the easiest way to do it.

See the custom CSS for individual block instances dev note for full details.

New Blocks: Icons, Breadcrumbs, and Headings

WordPress 7.0 adds three new native blocks that previously required a plugin. All are available immediately from the block inserter.

Icons Block

You can now insert SVG icons directly into your content without needing a separate plugin.

The Icons block comes pre-loaded with the full WordPress icon library, and you can search for icons by name.

Icon library in WordPress 7

You can also resize, recolor, and adjust spacing on each icon.

This makes it easy to add visual cues next to feature lists, service cards, or pricing tables without uploading image files or installing a separate plugin.

Icons block in WordPress 7.0

Pro Tip: Third-party icon libraries (like Font Awesome or Heroicons) aren’t included in 7.0, but official support for registering custom icon sets is coming in WordPress 7.1.

Breadcrumbs Block

The Breadcrumbs block adds a fully functional breadcrumb trail to any post, page, or custom post type template, with no plugin required. It automatically generates the trail based on your site structure.

Breadcrumbs help visitors navigate back up through your site hierarchy — for example, jumping from a blog post to its category page — and they’re a well-known SEO signal. Google uses them in search result snippets, which can improve how your pages appear in search results.

Breadcrumbs block in WordPress 7.0

Developers can also customize the breadcrumb items and taxonomy preferences using two new PHP filters that ship with the block.

Headings Block

WordPress 7.0 adds a dedicated Headings block that consolidates all six heading levels (H1–H6) into a single block with built-in level variations.

You can switch between heading levels directly from the sidebar inspector without needing to transform the block, and all levels are searchable and accessible from the slash inserter.

This replaces the previous approach of inserting a Heading block and then adjusting the level separately, making heading hierarchy more intentional and easier to manage.

Proper heading structure also matters beyond just looks because screen readers use it to help visually impaired users navigate your content. Plus, search engines use it to understand what a page is about, which can influence your SEO rankings.

Customizable Navigation Overlays

Mobile menu overlays in the Navigation block are no longer experimental. You now have full control over how your mobile menu appears and behaves without needing a page builder plugin or custom code.

A new “Create overlay” button in the Navigation block walks you through the setup with a guided flow and pre-built design pattern options to choose from.

Designing mobile overlay navigation menus

Theme developers can also register a new navigation-overlay template part area to give users even more control from the site editor.

Pattern Editing Gets Smarter

In WordPress 7.0, block patterns now default to content-only editing mode. When you click into a pattern, you’ll see a simplified view with block icons and grouped controls in flyout menus, rather than the full block toolbar and settings for every element.

This makes editing patterns much less overwhelming, especially for content creators who don’t need to adjust design settings, just swap out text and images.

Pattern in isolate mode

Pro Tip: If you’re a developer or advanced user who prefers full access to pattern internals, you can disable content-only mode by adding a filter to your theme or plugin:

add_filter( 'block_editor_settings_all', function( $settings ) {
    $settings['disableContentOnlyForUnsyncedPatterns'] = true;
    return $settings;
} );

Gallery Lightbox Gets Navigation 🖼️

If you use the Gallery block with the lightbox feature enabled, WordPress 7.0 adds back/next navigation buttons.

This allows visitors to browse through your images without closing the lightbox.

Image lightbox has navigation buttons to browse gallery images

Arrow key navigation also works, so visitors can press the left and right arrow keys to move between images. Any images with the lightbox individually disabled are automatically skipped in the sequence.

Under the Hood Changes in WordPress 7.0 🔧

If you build WordPress themes or plugins, 7.0 includes several developer-focused additions worth knowing about.

Pseudo-Element Support in theme.json

Theme developers can now style :hover, :focus, :focus-visible, and :active states directly in theme.json , with no custom CSS file needed. This works for blocks and style variations, giving you cleaner, more maintainable theme code.

See the dev note on pseudo-element support for blocks and their variations in theme.json for full details.

PHP-Only Block Registration

You can now register a fully functional block using only PHP, with no JavaScript required for basic functionality. This is useful for server-side blocks and reduces the overhead for simple use cases.

Full details are in the PHP-only block registration dev note.

Block Selectors API

Blocks can now declare a selectors.css entry in block.json to tell WordPress exactly which CSS selector to use when applying Global Styles. This gives theme and plugin developers precise control over how styles are scoped, which is useful when a block’s default CSS selector doesn’t match the element you need to target.

Font Library Gets a Dedicated Page

The Font Library has two significant upgrades in 7.0.

It now has a dedicated font management page in the dashboard. This is a single place where you and your team can manage, upload, and install fonts regardless of which theme type you’re using.

And it now works across all theme types: block themes, hybrid themes, and classic themes alike. Previously it was limited to block themes with Full Site Editor support (#73971, #73876).

Font library is now available for classic themes
WP-CLI 3.0

WP-CLI 3.0 is releasing alongside WordPress 7.0, adding two new command sets: wp block for read-only block entity access, and the new wp ability commands for working with the AI Abilities API.

You can follow the latest on the Make WordPress CLI blog.

wp-env: phpMyAdmin on Playground Runtime

The wp-env local development tool now supports phpMyAdmin on the Playground runtime, reaching feature parity with the Docker runtime. Enable it by adding "phpmyadmin": true to your .wp-env.json file.

More details are in the What’s new for developers? (March 2026) post.

OPCache in Site Health

Site Health now includes OPCache information under Tools » Site Health » Info » Server (#63697), making it easier to diagnose performance issues related to PHP opcode caching.

Iframed Editor

The post editor now automatically switches to an iframed layout when all blocks in a post are using Block API version 3 or higher. This improves editor stability and performance.

If a post contains older blocks that use an earlier API version, the iframe is skipped to preserve backward compatibility. Plugin and theme developers should verify their blocks’ API version declarations if they notice unexpected editor behavior after updating.

Full details are in the iframed editor changes dev note.

More Secure User Registration Defaults

The Administrator and Editor roles have been removed from the new user default role selector under Settings » General. This prevents sites from accidentally assigning high-privilege roles to new accounts by default.

Site Health will display an alert if your site had one of those roles set as the default before updating. Developers can also use the new default_role_dropdown_excluded_roles filter to customize which roles are excluded.

PHP Requirements

WordPress 7.0 sets the minimum PHP version at 7.4, though the core team strongly recommends PHP 8.3 or 8.4 for performance and security.


Miscellaneous Enhancements in WordPress 7.0

Here are a few smaller improvements also included in this release:

  • Cover blocks now support video embeds via URL, so you no longer need to upload the video file to use it as a cover background.
Video background for cover block
  • Text alignment has been standardized across 8 additional blocks: Post Author Biography, Post Author Name, Post Comments Count, Post Comments Form, Post Comments Link, Post Terms, Post Time to Read, and Term Description.
  • Interactivity API adds a new watch() function for cleaner side-effect patterns in interactive blocks.
  • DataViews and DataForm packages received significant updates including new layouts, validation rules, and grouping improvements. Plugin developers using @wordpress/dataviews should review the breaking changes.

Note: Client-Side Media Processing, which was previewed during the beta cycle, was moved to a standalone plugin before the 7.0 release and is not included in core. It will continue to be developed and may return in a future release.


Final Thoughts on WordPress 7.0

We’ve been following WordPress 7.0 development from planning to release, and it’s genuinely exciting to see so many long-awaited features finally ship.

The new AI Connectors screen sets a strong foundation for how WordPress will integrate with AI going forward, and the editor improvements, including responsive block visibility and per-block custom CSS, give site builders and content creators the tools they’ve been wanting for a long time.

If you haven’t updated yet, we recommend backing up your WordPress site first, then updating.

And if you’re on a busy or mission-critical site, consider testing on a staging environment before pushing to production. Once you’re in, set aside a few minutes to explore the new features, especially the Connectors screen and the revisions improvements. They’re easy to miss but genuinely useful.

If you liked this article, then please subscribe to our YouTube Channel for WordPress video tutorials. You can also find us on Twitter and Facebook.

The post What’s New in WordPress 7.0? (Features & Screenshots) first appeared on WPBeginner.

WordPress.org blog: WordPress 7.0 “Armstrong”

0
WP 7.0 Release Edition Main Image

Every WordPress release celebrates an artist who has made an indelible mark on the world of music. Say Hello to WordPress 7.0 “Armstrong”, named in honor of “Satchmo” himself, jazz musician Louis Armstrong.

Known as the “first great jazz soloist”, Louis Armstrong created ensembles that highlighted his own profound trumpeting skills, and in the process, transformed jazz from an orchestral art form into a solo art form. The master trumpeter also impressed the world with his signature vocals, introducing improvisation into Jazz, influencing every artist he worked with, and permanently changing the landscape of music.

Louis Armstrong wove his personal touch into the world of Jazz. With WordPress 7.0 “Armstrong”, you can build with yours.

Welcome to WordPress 7.0!

WordPress 7.0 marks the start of a new era, laying the foundation for AI across the WordPress experience. Greeting you with a modern, more intuitive dashboard, 7.0 introduces enhanced customization and development tools that inspire creativity and tap into endless potential.

Whether you’re a creator, business owner or developer – WordPress 7.0 let’s you create in a way that is uniquely your own.

What’s inside

Explore AI abilities directly in your website, all managed from a central hub. Slide seamlessly through the sleek, new admin theme implemented across the dashboard. Ignite creative flow with new blocks and design tools, and tap into an expansive developer toolbox that gives you more control than ever, letting you create your way.

AI-Integrated WordPress

Possibilities right in your hands.

With AI integrated throughout WordPress the potential is endless. A new AI Client in Core lets WordPress communicate with generative AI models, while connections are easily managed from a single hub in the dashboard. The AI Client combined with the Abilities API makes a fiery duo that introduces new functionality, workflow automation, and creation tools to your website. Install the new AI plugin to expand your options even more: generate and edit images, create titles or excerpts, or even suggest alt text.

7.0 also includes a new Client-Side Abilities package: a Javascript counterpart to the Abilities API, with a built in UI and command palette that delivers extensive new and hybrid AI abilities.

Manage all your external connections in a central hub on the Connector’s screen. Easily dive in with 3 presets, or add your own connections. Authenticate and get started with AI abilities in just a few clicks.

An AI-integrated WordPress promises infinite potential, ready to be discovered.

Modernized Dashboard

Elevate your admin experience.

7.0 introduces a fully revitalized dashboard with a chic, modern new color scheme, and clean finishes throughout.

Polished with smooth transitions that seamlessly shift as you move between screens, you’ll feel like you’re effortlessly gliding through the dashboard.

Just one click of the new Command Palette shortcut, a ⌘K or Ctrl+K icon in the upper admin bar, lets you access your favorite tools from anywhere in the dashboard.

Explore typography from one place, regardless of theme. Install, upload and manage your font collection from the new dedicated font management page, with support for block, hybrid and classic themes.

Visually scrub through revision versions to see what changed at a glance, with markers that make editorial choices more intuitive. Easily pick the revision you want and restore instantly.

Design, Create, Customize

A simpler way to build.

Let WordPress be your muse with new blocks, block supports, and design tools that add visual agility, granular control, and keep every element of your website on brand, with fresh new touches.

Showcase your ideas in a lightbox slideshow with the new gallery block, and finesse your markup with the new Heading block. Deliver clear site navigation with the new Breadcrumbs block, and add more detail to your designs with the new Icons block.

Enhanced responsiveness controls in 7.0 make your site more user friendly. Hide and reveal blocks based on device, without affecting other viewports. Adjust styles for different breakpoints, and customize what those breakpoints are.

Design and build your menu overlay with blocks and patterns, fully customizable with the styles you want visitors to see. Add columns, stylize typography, or embed your own close button in the overlay. Start with a template or create your own menu from scratch.

Fine tune page design and layout with Patterns that act as a single unit, detachable for more isolated control. Insert your pattern, swap elements and customize with ease.

Style every detail of content with custom CSS at the block level, right in your post or page.

Developer’s toolbox

Advanced tools for building your way.

WordPress 7.0 lets you build faster, better, stronger, and easier with an extensive set of expanded APIs and enhanced functionality.

Create blocks and patterns on the server level using only PHP, auto-registered with the block API.

Explore a more extensible Site Editor, with routing, route validation, and a new wordpress/boot package that allows plugins to build custom site-editor pages.

And much more

For a comprehensive overview of all the new features and enhancements in WordPress 7.0, please visit the feature-showcase website.

Check out whats new in 7.0

Learn more about WordPress 7.0

Learn WordPress is a free resource for new and experienced WordPress users. Learn is stocked with how-to videos on using various features in WordPress, interactive workshops for exploring topics in-depth, and lesson plans for diving deep into specific areas of WordPress.

Read the WordPress 7.0 Release Notes for information on installation, enhancements, fixed issues, release contributors, learning resources, and the list of file changes.

Explore the WordPress 7.0 Field Guide and learn about the changes in this release with detailed developer notes to help you build with WordPress.

The 7.0 release squad

Every release comes to you from a dedicated team of enthusiastic contributors who help keep things on track and moving smoothly. The team that has led 7.0 is a global, cross-functional group of contributors who are always ready to champion ideas, remove blockers, and resolve issues.

Thank you, contributors

The mission of WordPress is to democratize publishing and embody the freedoms that come with open source. A global and diverse community of people collaborating to strengthen the software supports this effort.

WordPress 7.0 reflects the tireless efforts and passion of more than 875+ contributors in countries all over the world. This release also welcomed over 200+ first-time contributors!

Their collaboration delivered more than 420 enhancements and fixes, ensuring a stable release for all – a testament to the power and capability of the WordPress open source community.

1000camels · Aakash Verma · Aaron Jorbin · Aaron Robertshaw · Abdullah Kaludi · Abdur Rahman Emon · acmoifr · Adam · Adam Silverstein · Adam Zieliński · Adil Öztaşer · adithyanaik · Aditya Singh · Adnan Hyder Pervez · adnan.limdi · adrmf25 · afwebdev · Agnieszka Szuba · Ahmed · Ahmed Kabir Chaion · Ajit Bohra · Aki Hamano · Akshat Kakkad · Albert Juhテゥ Lluveras · Alec Rust · alecgeatches · Alex Concha · Alex Kirk · Alex Lende · Alex Stine · Alexander Bigga · Ali Aghdam · Alvaro Gテウmez · amanandhishoe · Amber Hinds · Ames Plant · Amibe Websites · Amin · Amit Raj · Amy Kamala · Anand Rajaram · Anastis Sourgoutsidis · Anders Norテゥn · Andrea Fercia · Andrea Roenning · Andrei Draganescu · Andrew Duthie · Andrew Nacin · Andrew Ozz · Andrew Ryno · Andrew Serong · Andrew Wilder · Andrija Vučinić · André Maneiro · Anh Tran · Ankit K Gupta · Ankit K. Gupta · Ankit Kumar Shah · Ankit Panchal · Anne McCarthy · Anne-Mieke Bovelett · Anthony Burchell · Anthony Hortin · Anton Vlasenko · anton7249 · Antonio Sejas · antonrinas · Anukasha Singh · Anup Kankale · apedog · arcwp · Ari Stathopoulos · Arkaprabha Chowdhury · Artemio Morales · Arthur Chu · Artur Piszek · ArtZ91 · Arun · Arun Sathiya · atharvasagane · audunmb · awardpress · Azragh · BackuPs · badasswp · Ben Dwyer · Benedikt Ledl · Benjamin Zekavica · Benoit Chantre · benpinales · Bernie Reiter · Bernie Reiter · Bero · Billy Wilcosky · Birgir Erlendsson (birgire) · Birgit Pauli-Haack · BlackStar · bluefuton · bobbingwide · Boris Gherman · Boro Sitnikovski · brad hogan · Brad Jorsch · bradshawtm · brajdas0022 · Brandon Hubbard · Brandon Kraft · Brandon Payton · brbrr · Brian Coords · Brian Gardner · Brian Haas · Brian Hogg · Bridget Willard · brumack · Bruno Freiberger Garcia · buutqn · Calin Don · Carlo Cannas · Carlos Bravo · Carolina Nymark · cbirdsong · cgastrell · Chelsea Otakan · Chi-Hsuan Huang · Chris Lilitsas · Chris McElroy SEO · Chris Zarate · chrisdotdotdot · chrispecoraro · Christoph Daum · Christy Nyiri · Chuck Grimmett · Ciprian Popescu · clayray · Colin Stewart · component · Copons · Corey Worrell · Cory Hughart · crstauf · czarflix · Dale du Preez · Damon Cook · Dan Knauss · Dan Luu · Dan Zakirov · Daniel Bachhuber · Daniel Jalkut (Red Sweater) · Daniel Richards · Daniele Scasciafratte · danieltj · dannyreaktiv · Darin Kotter · Darren Ethier (nerrad) · Darshit Rajyaguru · Dave Ryan · Dave Whitley · David Arenas · David Baumwald · David Bowman · David Herrera · David Levine · David Smith · David Stone · Dean Sas · DEBARGHYA BANERJEE · Deepak Gupta · Deepak Lalwani · Deepak Prajapati · Deepak Rohilla · Denis ナスoljom · Dennis Ploetner · Dennis Snell · deoladev · Derek Hanson · Dhiraj Joshi · Dhrumil Kumbhani · Dhruval Shah · Dhruvang21 · Dhruvik Malaviya · Diane Co · digamberpradhan · digitalblanket · Dilip Bheda · Dilip Modhavadiya · Dimitris Mitropoulos · Dion Hulse · divyeshpatel01 · Dominik Schilling · Douglas Henri · Dreb Bitanghol · Drew Jaynes · Drivingralle · drysand · Earle Davies · eclev91 · Egill R. Erlendsson · Ehti · Ella van Durpe · Emerson Maningo · Enrique Sテ。nchez · Eric Michel · Erick Hitter · Eshaan Dabasiya · Esteban · Estela Rueda · Evan Solomon · Fabian Kägy · Fakhri Azzouz · Farhad Sakhaei · Felipe Velzani · Felix Arntz · Fernando Tellado · Firoz Sabaliya · Francisco Vera · Franck VANHOUCKE · Fransisca H · Fredrik Forsmo · frOM · fushar · Garrett Hyder · Gary Jones · Gary Pendergast · Gaurang Sondagar · Gautam Garg · Gautam Mehta · geminorum · Generosus · George Mamadashvili · Gergely J · gierand · Glen Davies · Gopal Krishnan · Graham Armfield · Grant M. Kinney · Greg Ziółkowski · Guido · Gulamdastgir Momin · Gustavo Hilario · Gyurmey · H. Adam Lenz · H. Kabir · hack_nug · hanneslsm · Hans-Gerd Gerhards · Hardik Kumar · harshbhonsle08 · Helen Hou-Sandi · Himanshu Pathak · Himanshu Shekhar · hiranimahaveer · Hiroshi Sato · Hit Bhalodia · Hitesh Talpada · Hozefa Saleh · Hridoy Roy · hugod · huubl · Huzaifa Al Mesbah · Hテゥctor Prieto · Ian Dunn · Ibrahim Riaz · ierwira · iflairwebtechnologies · ignatiusjeroe · Ipstenu (Mika Epstein) · Iqbal Hossain · Isabel Brison · iseulde · itsyash1421 · Iulia Cazan · Jabe · Jacob Cassidy · Jacob Smith · Jadav Sanjay · James Giroux · James Koster · James LePage · James Monroe · Jarda Snajdr · jarekmorawski · jarodortegaaraya · Jason Adams · Jason Kytros · Jason LeMahieu (MadtownLems) · jaspercck · Javier Casares · Jaydeep Das · Jaydip · jcnetsys · Jean-Baptiste Audras · Jean-Sテゥbastien Mansart · Jeff Chi · Jeff Golenski · Jeffrey Carandang · Jeffrey Paul · Jennifer M. Dodd · Jenny Dupuy · Jeremy Felt · Jeremy Herve · jeryj · Jesse Dyck · Jessica Lyschik · jhtjards · Jigar Kahar · Joe Dolson · Joe Fusco · Joe Hoyle · Joe McGill · Joen Asmussen · joezappie · Johannes Jテシlg · John Blackbourn · John Hooks · John Jago · John James Jacoby · John Parris · John Watkins · Jomon Thomas Lobo · Jon Surrell · Jonathan Bossenger · Jonathan Desrosiers · Jonny Harris · joppuyo · jordesign · Jorge Costa · jorge1017 · Jos Velasco · Joseph Scott · Joshua Dwire · Joshua Goode · joshualipstone · Joy · jtquip88 · Juanfra Aldasoro · JuanMa Garrido · julianoe · Juliette Reinders Folmer · Julio Potier · Junaid Ahmed · Justin Tadlock · Jyotirmoy Roy · Kallyan Singha · Kapil Paul · Karin Christen · Karol Manijak · Karthick · Karthikeya Bethu · Kaspars · Kathryn Presner · Kaushik Domadiya · Kedar Joyner · Keith Murphy · Kelly Choyce-Dwan · kelvinballoo · keoshi · Kerry Liu · Kevin Batdorf · Khoi Pro · Khokan Sardar · Khushi Patel · Khushi Thakrar · Kira Schroder · Kirtikumar Solanki · Kjell Reigstad · kkmuffme · Knut Sparhell · Konstantin Obenland · kpapazov · kristastevens · Krupa Nanda · Krupal Panchal · Kyle Mott · Lae · Lakshyajeet Singh Goyal · Lance Willett · Lars Gersmann · Lauri Saarni · Leandro Amorim · leedxw · leemon · Lela · Lena Morita · Levin Baria · Liam Sarsfield (a11n) · liviopv · Louis Chance · Louis Wolmarans · Luigi Teschio · luigipulcini · luisherranz · LukasFritzeDev · Luke Carbis · Lynn Bradley Griffith · maccyd · Madhavi Shah · madhavraj · Magalie Chetrit · Maggie Cabrera · Mai · Mainul Kabir Aion · maksvi · Malay Ladu · Malte · maltfield · Manhar Barot · Manish Dhorepatil · Manuel Camargo · Manzoor Wani · Manzoor Wani · Marc Armengou · Marcin Pietrzak · Marcio Duarte · Marco Almeida | Webdados · Marco Ciampini · Marco Olmedi · Marcus · marian1 · Marianne · Marie · Marin Atanasov · Mario Santos · Mariusz Szatkowski · Mark Jaquith · Mark Uraine · Marko Ivanovic · Mary Baum · Mary Hubbard · Maryam Sultana · Mathias Peguet · mathijsvdbeek · Matias Benedetto · Matias Ventura · Matt Miklic · Matt Mullenweg · Matt Shaw · Matthias Kittsteiner · Maud Royer · Maulik Makwana · Max Schmeling · Maxime Freschard · maximum.software · Mayank Tripathi · Mayur Prajapati · Md Abdullah Al Fahad · Md Abul Bashar · MD ISMAIL · Md Rashed Hossain · Md. Ibrahim Khalil · Meet Makadia · Mehraz Morshed · Mel Choyce-Dwan · Michael · Michael James Ilett · Miguel Fonseca · Miguel Lezama · Miguel Torres · Mikael Korpela · Mike Jolley · Mike McAlister · Mikin Chauhan · mimi · Minal Diwan · Mir Monoarul Alam · Miriam Schwab · Miroku · Miroslav Mitev (a11n) · Mitchell Austin · mmorris8 · Mohammad Risad · Mohammad Rockeybul Alam · Mohammed Jabir shaikh · Mohammed Noumaan Ahamed · Mohit Sharma · moksha shah · Monarobase · Monzur Alam · Morteza Geransayeh · Moses Cursor Ssebunya · mreishus · mrwweb · mtias · Mukesh Panchal · Mustafa Bharmal · mydesign78 · Nabhishek Singh · Nadir Seghir · Nadir Seghir · Naman Khare · NANI SAMIREDDY · Narendra Sishodiya · Naresh Bheda · Nasim Miah · Nate Allen · Navneet Kaur · nendeb · Nick Diego · Nick Halsey · nicmare · nidhidhandhukiya · Nik Tsekouras · Nikita Solanki · Nikunj Hatkar · Nilambar Sharma · Nimesh · Nino Mihovilic · Ninos · Nirav Sherasiya · Noruzzaman Rubel · obliviousharmony · Okawa Yasuno · Olga Gleckler · Oluwaseun Olorunsola · Ophelia Rose · opr18 · Otto Kekäläinen · Ov3rfly · Ovidiu Galatan · ovidiul · owolter · Ozgur Sar · Paal Joachim Romdahl · Palak Patel · Parag Jethva · Paragon Initiative Enterprises · Parin Panjari · Parth vataliya · Pascal Birchler · Patrice Dテゥfago · patrickwclanden · Paul Bearne · Paul Biron · Paul English · Paul Kevan · Pavan Patil · Pavel Ciorici · Pavel Vybテュral · pavelevap · penelopeadrian · Per Sテクderlind · Peter Rubin · Peter Wilson · peter8nss · petitphp · Phil Johnston · philhoyt · Philip · Philip Jackson · Phuc Nguyen · Pieterjan Deneys · Piyush Patel · pmbs · poligilad · Pooja Kakkad · Pooja Killekar (Muchandikar) · poojapadamad · porg · Pradeep Pasam · prajapatvishnu · Pranav Yeole · Pranjal Pratap Singh · Prasad Karmalkar · Prashant Baldha · Prathamesh Bhagat · Pratik Jain · Pratik Londhe · Pratik Nawkar · Presskopp · Priyanka Gusani · psorensen · r1k0 · Rabbi Islam rony · rachid84 · Rafael Della · Rafael Miranda · Rahul Kumar · Rahul Prajapati · Rahul Tank · Rajan Vijayan · Rajdip Tank · Raluca · Ramon Ahnert · Ramon Corrales · Ramon James · Ravi Chudasama · Ravi Khadka · rcrdortiz · Rebeen Sarbast · Rejaul Alom Khan · Renatho · Retno Nindya · retrofox · Riad Benguella · riadev · Rian Rietveld · Ricardo S. · Rich Tabor · Rinkal Pagdar · Rishabh Gupta · Rishav Dutta · Rishi Mehta · Rishit Gupta · RM Shiblee Mehdi · Robert Anderson · Robert Chapin · Robert O’Rourke · Robin van der Vliet · Rodrigo Primo · Rohan Jha · Rolly Bueno · Romain Menke · Ronnie Burt · Roy Tanck · Rutuja Paramane · Rutvik Savsani · Ryan Welcher · Sören Wünsch · SACHINRAJ CP · Sagar Deshmukh · Sagar Jadhav · Sagar Ladani · Sageth · Sainath Poojary · Sajjad Hossain Sagor · Sal Ferrarello · Sam · samiamnot · Sampat Viral · Sandeep Dahiya · Sandip Sinh · sandipmaurya2611 · SAndrew · Sanket Parmar · Sara · Sarah Norris · sarah semark · Saransh Sinha · Sarath E · Sarthak Jaiswal · Saul Fougnier · saurabh.dhariwal · Saxon Fletcher · Scott Kingsley Clark · scribu · Sean Wei · Sergey Biryukov · Sergey Mochalov · Seth Rubenstein · Shadi Sharaf · Shahi Ferdous · Shail Mehta · Shalin Shah · shanemac10 · Shashank Shekhar · Shatrughan Myatra · shaunandrews · Shazzad Hossain Khan · shekharnwagh · Shivam Jha · Showrav Hasan · Shreya Shrivastava · Shubh Mittal · Sidhant Tomar · sidharthpandita · Silas Kテカhler · siliconforks · silvanarnet · sky_76 · skylarkcob · Sourabh Jain · Sourav Pahwa · Soyeb Salar · Spencer Finnell · Sphere Plugins · Stanko Metodiev · Stefan Pasch · Stefan Velthuys · stefanfisk · Stefano Minoia · Stephen Bernhardt · Stephen Edgar · Steve Burge · Steve Dufresne · Stoyan Georgiev · strarsis · Stuart Langridge · studio_m · styankov · Subrata Sarkar · Suhel-Shaikh-Mohammad · Sukhendu Sekhar Guria · Sumit Singh · sunyatasattva (a11n) · susiyanti · Swanand M · swoyamjeetcodes · Sybre Waaijer · Sテゥrgio Gomes · tainacan · Takashi Irie · Takashi Kitajima · Takshil Kunadia · Tammie Lister · Tejas Gajjar · the.pro · thejaymo · thelmachido a11n · them.es · TheViv · Thomas Krテ、ftner · Thorsten Frommen · threadi · Timi Wahalahti · Timothy Jacobs · to · Tobias Bテ、thge · Toby Cryns (@themightymo) · Tom Auger · Tomoki Shimomura · Toni Viemerテカ · Tonya Mork · Torsten Landsiedel · Tosin Oguntuyi · Trupti Kanzariya · Tsvetan Tsvetanov · Tung Du · TuomasL · Tushar Bharti · Tushar Patel · Ugyen Dorji · Ulrich · Umesh Nevase · Umesh Singh · up1512001 · Utsav Ladani · Valentin Grenier · Van Ons Open Source · Vania · Vasco Daniel Baiテ」o · Velda · vgnavada · vietcgi · Viktor Szテゥpe · Vincent Breton · Vipul Gupta · Vishal Kakadiya · Vishit Shah · vishnu prajapat · Vrishabh Jasani · webtasky · WebTechee · Weston Ruter · WFMattR · Will Skora · wiuempe · wolf45 · wongjn · wpexplorer · wpsoul · WraithKenny · xate · xavilc · xwolf · Yagnik Sangani · Yannis Guyon · Yash B · Yash Jawale · Yogesh Bhutkar · Yusuf Mudagal · zoe20 · Łukasz Strączyński

More than 70 locales have fully translated WordPress 7.0 into their language. Community translators are working hard to ensure more translations are on their way. Thank you to everyone who helps make WordPress available in 200+ languages.

Thank you to the more than 21 web hosts that have tested pre-release versions for WordPress 7.0, helping ensure that WordPress and hosting platforms are fully compatible, free of errors, and optimized for the best possible user experience.

Last but not least, thanks to the volunteers who contribute to the support forums by answering questions from WordPress users worldwide.

Get involved

Participation in WordPress goes far beyond coding. And learning more and getting involved is easy. Discover the teams that come together to Make WordPress and use this interactive tool to help you decide which is right for you.

#217 – Leonardo Losovic on Affordable and Accurate WordPress Translations Using AI

0
Transcript

[00:00:19] Nathan Wrigley: Welcome to the Jukebox podcast from WP Tavern. My name is Nathan Wrigley.

Jukebox is a podcast which is dedicated to all things WordPress, the people, the events, the plugins, the blocks, the themes, and in this case, how to create affordable and accurate WordPress translations using AI.

If you’d like to subscribe to the podcast, you can do that by searching for WP Tavern in your podcast player of choice, or by going to wptavern.com/feed/podcast, and you can copy that URL into most podcast players.

If you have a topic that you’d like us to feature on the podcast, I’m keen to hear from you and hopefully get you, or your idea, featured on the show. Head to wptavern.com/contact/jukebox and use the form there.

So on the podcast today we have Leonardo Losovic. Leonardo has been working with WordPress since 2012, developing plugins such as Gato GraphQL, a GraphQL server for WordPress, and more recently, Gato AI Translations for Polylang, a plugin that harnesses AI to streamline the process of translating WordPress websites.

After giving a talk at WordCamp Asia on the invisible gotchas of WordPress translation, Leonardo joins us to discuss both the moral and practical arguments for making your site multilingual, and how the technology has changed the landscape for site owners and developers alike.

I suspect that many listeners have considered translating their WordPress websites, whether for legal compliance or to reach a wider audience, but may be unsure where to start, or if the investment is worthwhile.

As Leonardo explains, the ease and affordability introduced by AI powered translation tools have changed the landscape. What used to require costly human translators and time consuming workflows can now often be handled with a few clicks, and for a fraction of the price.

Leonardo starts by sharing his background in plugin development, and the evolution of translation plugins over the

decade. We then get into how AI translations work, why manual oversight still matters, and how the new features coming to WordPress, such as collaborative editing and deeper AI integration will impact workflows and user experience.

We also discuss plugin strategies around managing multiple translations, SEO considerations, and the best practises for ensuring your translations are accurate and efficient.

Leonardo gives practical advice on how to avoid wasting resources when updating posts, and offers his perspective on the arms race of translation, as AI becomes ubiquitous, and why as it gets easier, keeping up with competitors becomes essential.

If you’re interested in making your site multilingual, or just want to hear how WordPress translation technology is evolving, this episode is for you.

If you’re interested in finding out more, you can find all of the links in the show notes by heading to wptavern.com/podcast, where you’ll find all the other episodes as well.

And so without further delay, I bring you Leonardo Losovic.

I am joined on the podcast by Leo Losoviz. Hello, Leo.

[00:03:40] Leonardo Losoviz: Hello, Nathan.

[00:03:42] Nathan Wrigley: It’s lovely to have you on the podcast today. Leo and I were hanging out at WordCamp Asia where you did a presentation, I think it’s correct to say. It was all about how you might translate things on your WordPress website, leveraging some of the solutions that Leo has built, but possibly just some things that might be baked into WordPress as well. So that’s going to be the discussion topic for today.

Before we crack into that, Leo, can you just tell us a little bit about you, your background with WordPress, and probably the stuff that you’ve been doing recently, which touches on translations?

[00:04:14] Leonardo Losoviz: Alright. So I’ve been working with WordPress since 2012, and I have a plugin called Gato GraphQL, which is a graphical server for WordPress. I’ve been working on that since like forever now.

And then I upgraded to try to make plugins that can be used by the final user of the website, bloggers and marketing people, not just developers. And then I launched another plugin that is called Gato AI Translations for Polylang. It’s basically a wrapper of my other plugin that will help people translate their websites using AI. And I have been working with this plugin for over one year now. And, yeah, I mean this is what I’m doing.

[00:04:54] Nathan Wrigley: Yeah. And how did your presentation at WordCamp Asia go? Were you happy with the delivery and the attendance and things like that?

[00:05:00] Leonardo Losoviz: Delivery. Yes. Actually, I think it came out quite good. You can check it out, it’s on YouTube. Attendance? Not really. My talk was the first one on the second day of the conference. It was 9:30 AM. Everybody was either sleeping or they were drinking coffee outside. We did have people showing up slowly. Maybe by the end of the presentation there were people who were like, hey, this appeared to be good. Too bad that I didn’t come here on time.

[00:05:23] Nathan Wrigley: I hope you forgive me because I was one of those people. I dropped in towards the end. I certainly enjoyed the latter part of your talk. So you’ve built a whole load of solutions around the capacity, the capability to make your WordPress website go from language A to language, B, C, D, E, and so on and so forth. I will just read the blurb about what your presentation was called and also what it was about.

And so the presentation title was The Invisible Gotchas of WP Translation. And then the blurb surrounding that was nice and short, and it goes like this. This talk walks through a practical checklist to turn, we should translate, into a precise plan that leaves no strings untranslated. Attendees will leave with a practical end-to-end approach to translating WordPress content that leaves nothing to chance.

So my first question then is really focused on the, we should translate, that little bit. Let’s make the case for, I suppose the moral argument, not the technological argument. Now, it might be a moral argument, but it also might be a legal argument. I’m just wondering where you think we stand in terms of whether you have to, or should, translate things at this point in time.

[00:06:34] Leonardo Losoviz: Well, I guess that if you have to out of legal requirements, then you will have to. So that is out of the equation. If you’re compelled to do it, then that’s part of your business. It’s a business requirement, so you’ll have to do it.

The key question is, if you don’t have to, I mean, nobody’s forcing you to do it, should you still do it? And the answer is, yes, of course you should, because it will help you. Why wouldn’t you do it if you can do it? If you have potential visitors to your website speaking different languages, why wouldn’t you want to track them? Why wouldn’t you want to show your content to new, like a new user base? The key question is, as long as you can do it, do it.

[00:07:13] Nathan Wrigley: Yeah, I think that’s an interesting point. So certainly in the part of the world where I live, there is a lot of legislation around what must be done. So for example, I’m in the UK and we have a variety of different languages spread throughout the country. And depending on where you live and what your business is involved in, you may be compelled to do it. And so, as you say, that’s just the way it is. You know, you don’t have any choice around that.

But I think now, especially with the advent of technologies which enable translation to happen at the speed of light, more or less, it becomes increasingly a question of, well, why wouldn’t you do that?

And so I’m kind of keen to explore the things that have changed over the last, let’s say decade. That’s probably a bit too long, but something along those lines, to make it easier to translate. In the past, I’ve interviewed lots of founders of plugins that do translations. Let’s say 10 years ago, this was a fairly lengthy, probably quite costly enterprise. Translating, let’s say an English site into, let’s say a German site.

Because you had to figure out which bits of the website needed to be translated. You probably had to go somewhere to find a human that could do that translation work. You then had to negotiate the price for that, receive the translated text, and then somehow figure out how to make it so that the English string is converted into the German string, and so on and so forth. I’m imagining that’s no longer the case. Where are we at in April, 2026 in terms of the ease of getting things translated? And probably, I think we’re going to stray into AI here.

[00:08:45] Leonardo Losoviz: Yes, the answer is AI. Truth is that with AI you can translate your content very easily and the quality is just excellent. I will not tell you to not engage a professional translator if you don’t speak the language, just to make sure that the translation is right. Mostly when we’re talking about technical terms, or when they refer to some industry that your website is targeting. Otherwise, the quality is just excellent.

I would say that with AI, you can rely on it, I don’t know, maybe 99% of the translation seems accurate. If there’s some ambiguity around some technical term, then you might still want to have a professional translator. But even then, you know that you don’t need to engage the translator for the 100% translation. But only to pay attention to those details, possibly fix those errors, make sure the technical acronyms are correct and that kind of stuff.

So clearly the pricing tag that now you have compared to five years ago has gone down dramatically. You have to pay for the tokens. Basically, when you engage one of these AI providers, either Open AI or Anthropic or Gemini, you are paying to them for tokens to perform the translation. But that is literally like very little money. It can be like cents on the dollar.

In the past when you have, not just the past but also the present, you have company providing translation services. They will charge you much, much, much more than that. Maybe it will be like 50 USD per hour. Maybe it’ll be like 100 USD per hour for a professional translator. And then you have to engage them maybe five hours to translate one blog post, or, I don’t know, like five blog posts, it doesn’t matter. Now that the amount of work that you need to engage them just to double check, instead of five hours, will be maybe 30 minutes. So you are still spending money to engage the professional translator, but much, much, much less.

And that means that if you do have the budget, now instead of translating one language, you are talking, Nathan, about legal requirements, possibly your country has two or three different languages. I don’t know, if you’re from Canada, you might speak English and French. Maybe they will ask you to translate your websites to English and French. But now you can say, okay, well now, if I had the money and it’s so easy to translate using AI, I can translate to many more languages and also target people, not just from Canada, but from other regions of the world.

And then you can also translate to Spanish. Why not? And you can translate to Portuguese. So the situation now is that prices went down dramatically, the quality of the translation using AI is really, really, really high and you will need professional services only in those cases that you need to be 100% sure that translation is valid when it is a professional industry.

[00:11:25] Nathan Wrigley: Yeah, I suppose the, as you described, the acronyms and things like that, the technical language, I guess if you’ve just got a blog where, in my case I’m just using plain English, an ordinary set of words, I’m not ever going to be delving into complexity, and that may be the case for many people. I think I agree with you that the AI will probably do an admirable job.

But the minute you start to stray into unusual words, or technical things where, I don’t know, you’re referencing some aspect of physics or biochemistry or something like that, then I can see exactly why you might need to do that.

But also, interestingly, the budget has obviously shrunk to get that translation done from perhaps many hundreds of dollars down to perhaps a handful of US cents. But still, if you want to be compliant and you’ve got an intuition that your language may be straying into a grey area where AI might not do a perfect job, that is now where the budget is going. It’s just sort of polishing it up a little bit and making sure that, okay, that actually is highlighted.

Can I ask a question related to that? Do the AIs, when you ask them to translate things, do they come back with, okay, we’ve done our best, but we are confused by this portion or that portion? Or do they typically just hand back, this is our translation, go figure it out for yourself from there?

[00:12:43] Leonardo Losoviz: When we’re talking about my plugin, Gato AI Translations, you get the translation straight because you’re not interacting with the AI. You are asking straight for the response and that response, you add it, you embed it into your blog post. There is no interaction with the person.

So basically, you can do that, you could feed the content to ChatGPT and tell ChatGPT, translate it, and if you have any doubt, please ask me. And then ChatGPT will talk to you, and then we say, I don’t know how to translate this word. Should I say this or should I say that? But that is in the context of the interface when you’re talking to ChatGPT or you’re talking to Claude. In a plugin where you want to collect the string and just add it into the translated blog post, you don’t have that interaction. So it really depends on your use case.

[00:13:29] Nathan Wrigley: The plugins that I’ve seen in the past that have been tackling this job in WordPress, and again, we’re going back many, many years prior to AI. There was a lot of UI involved. You would have to log into the WordPress website. Let’s say it was a blog post, you would go to the blog post and usually lurking somewhere in meta, so in a box somewhere else would be the original string and then the translated string. And that would typically have been done by a human. And you’d probably copy and paste that back, or maybe the platform, the plugin would actually facilitate the putting of that text into that box by somebody that’s logged into the platform who’s paid to do the translations.

But the point being, there was a lot to look at. If you had a German translation and a Portuguese and a Lithuanian and Russian and, you know, on you go. Every time you add one of those in the UI becomes much more complicated and what have you. So I’m curious to see in 2026, how do you manage that? How is that all done? What does the UI look like? In an era of AI when we are increasingly typing and talking to our software, have you leveraged that and sort of tried to minimise the UI in a way?

[00:14:34] Leonardo Losoviz: Okay, so there are two responses to this. One is what I’m doing right now, and what I expect WordPress to offer coming soon. So what I am doing now with my plugin is just to do the translation. And you have one blog post in, say in English, your origin language, and then you select it from the post list, and you have this dropdown in the bulk actions with all the actions that you can execute with the post. And you just say, translate. And when you do that, it will duplicate the post from the origin to all of the translations.

You can have one translation, you can have 17 translations. It will create all of those 17 entries, and it will already translate all the content to the target language. So then if you want to edit the translation, if you want to fix it, then you’ll just edit the translation and then there you will see there’s something that doesn’t appear right, and then you fix it in the WordPress editor.

In my scenario right now, we go from nothing to everything. There’s no in between. Now with WordPress 7.0, they’re adding two things. One is adding the AI Connector. So we will have more and more and more capabilities to interact with AI. And the other thing that we have that is unrelated, but I think it will end up being related is phase three, which is the communications in the WordPress editor, right? That two people can communicate with each other, like Google Docs style.

And so we’ll have these windows on the right hand side from the WordPress editor, right? So you can add a comment. Somebody can add a comment saying, hey, do you think this is right? And the other person on the other side can say, yeah, this needs to be fixed. So they can communicate via the WordPress editor. Whereas right now you have two people interacting with each other. You can have one person and one AI.

So then imagine the scenario where you translate everything and then you edit the translated post. And you might have those same windows with a kind of sticky post, and pointing an arrow to some word saying, hey, I’m not sure if this is the right translation. Please check it out.

So I can see that WordPress 7.0 will give use the infrastructure to start adding this additional interaction. So then I could translate all the content as I’m doing right now. And if I find out from the AI that a world has not been, it doesn’t have 100% confidence that it’s the right translation, maybe we can use that phase three functionality to add a sticky post to have the AI interact with the person, say, hey, this translation, I’m not sure, please double check.

[00:17:04] Nathan Wrigley: This leverage is so much interesting stuff. So again, just in case the user hasn’t been keeping up with the WordPress news, 7.0 has, or WordPress 7.0 I should say, has this capability which wasn’t quite ready for the WordCamp Asia release. The idea was to release 7.0 at WordCamp Asia, but because of technical reasons, there was something that needed to be changed and amended about the way that data was handled and stored in different tables.

7.0 will bring the capability to have collaborative editing, so think Google Docs. And it really didn’t occur to me until quite recently, because somebody suggested exactly what you said, I was always imagining another human being, being in that interface. So it would be me and Leo having a conversation through comments or what have you in that same WordPress post.

But of course now we realise, well, of course, the AI work, the MCP and the adapters and all of those kind of things allow that thing in the post to be not a human being, it could be an AI. And so that’s really interesting.

So maybe we’ll come in, have a conversation, something along the lines of, please could you just check, this would appear to be fine but there seem to be a few errors here and there and everywhere, and it may be able to come back with a suggestion.

That stuff is so powerful, but yet completely unrealised at the minute. It’s kind of just on the horizon, but when that feature drops, I think that will be quite an interesting experience. You’ll be able to talk about the content with an AI, based upon what is in the content area of WordPress. That’s going to be really, really fascinating. Gosh, wow. What a future.

Is that stuff ready? Do you know if WordPress is going to ship with those kind of capabilities? So you mentioned things like the sticky post to sort of highlight, imagine a post-it note or something like that. Something which can highlight? Are all of those foundational pieces ready or were you just sort of blue sky gazing there?

[00:19:02] Leonardo Losoviz: I haven’t seen it, but we can all picture that happening. So you know that 7.0 is giving us the foundation to build all of the things. Once the foundation is there, it’s up to the community to implement these use cases. So yeah, I’m quite confident that it will happen, but I haven’t seen it. I haven’t seen it yet.

[00:19:19] Nathan Wrigley: Yeah, I do love the idea though, of communicating through that interface. That’ll be really interesting to see how that changes the calculus of how we write things and who we write them with and all of that kind of thing.

So Gutenberg, which we don’t talk about too much really at the moment, but Gutenberg had four phases when it was first talked about. So we’re in phase three at the moment, which is this collaborative editing. Broadly it was collaborative editing was the poster child of that release.

And the fourth one, so that may be many years away, I don’t know when phase four will come about, but the fourth one is bound very much to translation. Do you know if there’s any sort of foundational work being done over there? It may still be a complete black box. It’s just the word we’re going to deal with translations. Do you have any wisdom or insight into what’s happening over there?

[00:20:03] Leonardo Losoviz: No. All I know is that Matt Mullenweg was postponing that for the very, very, very end. And since we’re still working on phase three, I don’t think that there will be any phase four work happening anytime soon.

[00:20:16] Nathan Wrigley: No. Okay. So we’ll have to wait and see how that drops. But it could be another interesting phase. Let’s see what that does.

So, okay, now let’s sort of dig into the weeds of how your system works. So you mentioned that if I’m in the data view for posts, one of the options that I have when I’m hovering over a post, you know, delete post, edit post, what have you. It sounds like in there somewhere you inject a translate. And presumably when you hit that button, automations that you’ve previously set up, say, translate to French, translate to Portuguese, translate to Chinese and Japanese, that would then be triggered.

Do you then create separate posts? So that the post that’s now in Chinese is separate to the original one, or as some plugins handle it, do you take the original one and just inject metadata into that post?

[00:21:04] Leonardo Losoviz: If we’re talking about my plugin, my plugin is called Gato AI Translations for Polylang. I depend on Polylang. So Polylang is a plugin that works by creating separate entries for each of the languages. So you have a post in English, and when you translate it, you’ll create another post in French and another one in Spanish and another one in Portuguese.

Then you have a different plugin like WPML which has a different strategy, which is to have only one post and then all the individual strings are translated on runtime. So you’re not statically creating different versions of the post, but you have only one post and then you translate the strings, the actual content.

It really is up to what is the best strategy for your site, what it is that you are most comfortable working with. There are other plugins, of course. There is TranslatePress, there is Weglot, MultilingualPress. They all have different strategies. I do like Polylang because the post is created in advance. Then all the same rules for your WordPress site apply. You can cache the page, you can export it statically, and it also is fast because you don’t need to translate the string.

Like finding a specific string can be very expensive. Like a string, you know, that you need to find from English and translate to French. The string might be like, I mean 1000 characters long. You know, that can become very expensive. And if you do that on runtime, even if you cache it later, that can be very expensive. Yeah, my plugin is based only on Polylang, but it’s not the only plugin.

[00:22:28] Nathan Wrigley: Yeah. So there’s a whole range of different things out there, but you’ve obviously opted for Polylang. Is that a commercial kind of pro plugin or do they have a, is there a free version that you can leverage?

[00:22:37] Leonardo Losoviz: Yeah. It’s free. And they have the pro version that is, I think 99 USD per year for one domain, if I’m not wrong. But it’s completely optional, you can use Polylang free and it’s more than enough. Actually, Polylang Pro, they have a few features and the main feature that they had historically is that you could use machine learning for translating the content.

They use DeepL as a service, like Google Translate. Now the thing is that I wouldn’t use DeepL anymore. Even my own plugin, at the very beginning had, even nowadays, it has integration for Google Translate and for DeepL. But AI is so much superior than those. So you can still use Polylang Pro for the other features, but the machine translation one, there’s no need, Polylang free, more than enough.

[00:23:23] Nathan Wrigley: So when, let’s say for example, that I’ve got a post and I’ve translated it. I’m just beginning my journey, figuring stuff out. And again, we’re talking about your solution here. So, you know, you can speak to how it works, not how all the other ones work.

I click the translate button and I’ve now got six posts, the English original and then these five other languages. How does that surface? Are they like child posts of the original post? Is there an easy way for me to see, okay, here’s the German version of that, and it’s bound to this? Is there a filter system or what have you?

And then how does that look on the front end? So if the original string is, I don’t know, example.com/post-one, am I from an SEO point of view, does that stay nice and tidy? Like, I don’t know, it goes example.com/g for German, forward slash post-one, or how does that all tie together?

[00:24:13] Leonardo Losoviz: All right, so this is once again, a feature provided by Polylang. When you create the translations, all the posts, they’re all parallel to each other. They don’t have a hierarchy. They’re not like the child post from the origin post. And if you want to only see the post for one specific language, there is a switch, like a switcher button at the top menu bar, and you can select the language.

So by default it says all languages, and then you’ll have all the posts. So in a way, if you have, say that you have 10 posts and then you have 10 languages, that means that you have now 100 posts. So it can be a bit clutter. So then you go to the top menu and then you select English, and then it only shows you the English ones.

And the important thing is that, say you’re using AI to translate, you only need to deal with the origin post and nothing else, until you need to double check if the translation is right, maybe fix one thing here, one thing there. But otherwise, the whole time you are only dealing with the origin post.

So what I do is I always have my selector in that origin language. So it’s in English and I only see the English post. So then I do translate, and I know that the translation will be created alongside all of the categories, and all of the tags and all the feature image, right? But I don’t need to deal with them. So then I also don’t need to see them on my screen. They create clutter, so then I remove them.

And then to see them, to visualise them, yeah, once again, Polylang, it gives you the option of choosing the language by appending the language code in the URL. So mysite.com/fr/the-slug, that’s for French. Or you can also use subdomains. So you can have fr.mysite.com/the-slug. So that’s something that you can configure. And then basically when you go to that page and you add the language code in the URL, then you will see that blog post for the selected language.

And the way that Polylang handles all of this is it connects a post to all of its translations via a specific taxonomy, like a tag that they created, I think it’s called language, if I’m not wrong, or language relationship, I’m not completely sure now. And so it ties all the post to all of its translations. And the thing is that then when you go to the post in French, it can add the href lang meta tag that is telling Google that this post is a translation of that post.

So that is important for SEO purposes that these posts are not two independent entities, but one is a translation of that one for French. So Google will understand a lot of the relationships, and if the user who is searching for information, they’re searching for information in French, then Google will know to serve the French page. And if it is in Spanish, Google will know to serve the Spanish page.

[00:27:01] Nathan Wrigley: It’s an amazing wraparound solution, isn’t it? In that all of this is just sort of handled and what you essentially end up doing is, the user that is, you click the translate button and once you’ve got everything set up correctly, it just, off it goes.

I have a question though about amendment. So let’s say for example, I realised that my blog post was full of inaccuracies and errors and there’s just wrong throughout it. And I then go in and I make amendments. Do I then need to restart that whole translation process or can I rely on it kind of figuring out, okay, amendments were made, let’s just do that automatically for you? How does amendments to the original, in my case, English work?

[00:27:37] Leonardo Losoviz: Yeah, well, I would change that. I would say do not do any translation until you’re 100% sure that the post is final. And that’s the main way to waste your time, and to waste money in tokens. Because you execute the translation, and then you realise that something was wrong. Maybe this H2 tag was supposed to be an H3, then you fix it, and then you run the translation again. And then you realise that was another mistake, there was a typo. And then you had to run the translation again. And then you’re like, oh, but that image has embedded text in the image. It doesn’t work on the translated post. And then you run the translation again.

So all of these things are common sense, and you don’t think about them until you see the error happening time and again and again. So what I do is I have a checklist actually on my website. I have a blog post where I have every single item that we need to pay attention to in advance of executing the translation. So executing the translation is when you go to the post list, you select the post, and then you select translate. Easy, and it takes five seconds.

But before you do that, you need to make sure that the post is final. That means no typos. That means all the headers are the right header. That means that all images are correct. They have alt attributes. They have the title that you need. There’s no embedded text in the image, even adding an embed from another source.

Say that you have a YouTube video that you’re embedding on your content, and the YouTube video is in Spanish. When you translate that to French, maybe the YouTube video is not useful anymore. So all of these things you need to check from a multilingual point of view when you’re looking at your origin post. And then you’re like, okay, this origin post, now it’s okay. It’s perfect. You publish the post, then you translate.

[00:29:26] Nathan Wrigley: I got it. Yeah, I mean that makes sense. But, should you need to, it’s a process of clicking the button again and kind of beginning that process. But yeah, good idea to have those checks and balances.

I was at an event not that long ago in which AI was used inside of a WordPress plugin, inside of a post, to ascertain the content of things like images and infographics. So as an example, there was data held inside of a graph. So, I don’t know, whatever that data was, bar charts, pie charts you can imagine, but also just images and what have you. And although this may not be handled and maybe it’s blue sky thinking, I was wondering what the capabilities are for handling those kind of things.

So in the case of an image with a chart in it, wouldn’t it be nice if we could replicate that chart, but instead of all the labels being in English, if they could be in German or French or whatever it may be. I don’t know if that’s utterly out of the scope, even in blue sky thinking in terms of AI and translations. But I was curious if you had an inkling whether things that were not just text-based content might be handled in the future as well by AI. Not specifically addressing what you do at the moment, but whether that seems to be on the horizon.

[00:30:41] Leonardo Losoviz: Yeah, well, to be honest, I think technically it is feasible, but even if it can be done, I don’t think it should be done. And the thing is this, I’m promoting that we can translate our websites to as many languages as possible, only because we can. So you have your website in one language, then you can have it in two, then you will have it in five. You can have it in 30 languages. Why wouldn’t you do it? If you can target new countries and new visitors, sure, go ahead and do it. AI gives you the possibility.

But now imagine that you also want to translate the images. Every single image on your website will be replicated 30 times. That sounds scary. I wouldn’t do that. What I will do is to have one single image that is language agnostic, that there’s no text inside. And if you had to add text, maybe in your page builder, maybe in Gutenberg or Elementor or Bricks, maybe you can create an overlay and place the text on top. It’s a more difficult solution and a bit more complex, but it’s clean because then you can translate that as part of text, and the image, you don’t need to replicate the image 30 times.

[00:31:44] Nathan Wrigley: Yeah, that’s an interesting point. And that leads me to wonder whether it’s possible to, for example, an image caption. Whether it’s possible to translate that into 30 different languages whilst still referencing the exact same image.

So, I don’t know, in English it might say, here is a picture of a dog walking by a beach, and then the French equivalent caption, and the German equivalent caption and what have you. Then in effect, you’ve recycled the same image, but you’ve also, the person viewing it in German would get the German equivalent of that. Again, I don’t know if that’s possible, but maybe that’s an interesting.

[00:32:14] Leonardo Losoviz: Yeah, actually that’s how it is right now. So when you translate the post, you will also translate all of the entities associated to the post, the tags and the categories and the featured image. So the featured image will have meta data associated. So when you upload an image to the media manager, you add meta data, the title, you can add a caption. So all of that text, it’s in one language.

Now, you can also translate the image by creating a new entry, once again using Polylang. The image has a language associated, so the origin image will be in English, and you can create a new entry in French, and the title will be translated to French and the caption will be translated to French. But the image itself is the same for both entries. So the JPEG or the PNG, that one is not duplicated. So you’re not increasing the size of your hard drive. You’re creating another entry on the database for the media entry, the custom post media, or the attachment, but not for the actual physical file.

[00:33:11] Nathan Wrigley: Yeah. So it’s much more lean, basically doing it that way, isn’t it? I didn’t actually know that it was done that way, but that’s certainly how Polylang handles that. Okay, that’s interesting.

So you mentioned that, I think one of the through lines in what you’ve been saying is because you can do it, why not just do it? It kind of makes sense when you think about it like that, but I’m just wondering what the real world impact of this is. You know, in terms of things like discoverability, and whether or not it really genuinely does have an impact on your business. Let’s say for example, I don’t know, you’re shipping widgets from England to France, and suddenly you translate your site into Japanese and Chinese.

I would assume that that could only have a positive effect, but also, equally, I’d want to know what the data was on that. And I don’t know if you have, given that you are in the translation space quite heavily, I don’t know if you have any data to hand which would compel people to do this, to prove, look, it really is worthwhile. Anecdotally, it feels like it would definitely be worthwhile. Why not, would be the way of phrasing it. But I don’t know if there’s any data lurking in your head which would categorically say, oh yeah, this is definitely it.

[00:34:16] Leonardo Losoviz: Nathan, unfortunately, we’re screwed.

[00:34:19] Nathan Wrigley: The answer is no.

[00:34:20] Leonardo Losoviz: Because when it’s so easy, everyone will do it. And when everybody does it, you’re not moving forward. You’re just moving, you’re running just to be on the same spot. If you’re the only one who is translating your site to 20 languages, you will be far ahead from everybody else. But because it’s easy to you, it’s easy to everybody. And if everybody does the same, once again, you are not ahead of them. You’re on the same place.

So this is the problem of technology, right? And the problem of AI. Now we’re all very productive with AI. I’m using AI to code my plugin, and I think I’m pulling ahead. But my competitor is also using AI to code his plugin. So we are both running just to stay on the same place. So in a way, unfortunately, it becomes a situation in which you need to do it just to not fall behind.

[00:35:07] Nathan Wrigley: Yeah, it’s kind of like the arms race mentality in a way, isn’t it? But also, that’s quite a compelling way of framing it, because you can be sure that, okay, if you’re writing a blog and you’ve got a limited audience, maybe there’s limited scope in that. If you are in a business and you are, certainly if you have pretensions of dealing over international borders and your competitors are doing this, it is exactly that arms race mentality, isn’t it?

Then you are compelled to do it just to be ordinary, just to be the baseline. 20 years ago, would’ve been entirely different because of that would’ve been a very expensive calculation and translating into, let’s say, Japanese. If there’s no ROI on the Japanese translation, that is money which would’ve been probably wasted.

Now, with AI costing literal cents to translate, it does feel like that is the calculus, right? We are doing it because it can be done and we know that the competitors will be doing it, so we ought to do it as well. Maybe that’s all the argument needs to be. It’s simply that, simply stated in that way.

[00:36:12] Leonardo Losoviz: That’s a good reason to do it, which is that you want to target people in other countries, speaking other languages. So yes, I want to do it, but at the same time, if I see that my competitors are doing it, then I have to do it. I can see it both ways.

[00:36:25] Nathan Wrigley: Yeah. Okay. It’s certainly been an interesting conversation. What I’ll do is I will ask Leo to provide me with links that are pertinent. Maybe we can get the wordpress.tv of the presentation that you did, plus links to the websites which have been mentioned in this podcast episode. If you go to wptavern.com and you search for the episode with Leo Losoviz. His name is spelled L-O-S-O-V-I-Z or Z, depending on where you live in the world. If you go and search for that, then you’ll be able to find a transcription of this as well as links to the various different bits and pieces that we have mentioned.

Leo, before we wrap it up, is there anything else you wanted to say? If not, we will bid you adieu.

[00:37:07] Leonardo Losoviz: No, not really.

[00:37:09] Nathan Wrigley: You’ve got it. In which case we will call that a day and say thank you very much, Leo, for chatting to me today. Really appreciate it,

[00:37:15] Leonardo Losoviz: Thank you, Nathan.

On the podcast today we have Leonardo Losovic.

Leonardo has been working with WordPress since 2012, developing plugins such as Gato GraphQL, a GraphQL server for WordPress, and more recently, Gato AI Translations for Polylang, a plugin that harnesses AI to streamline the process of translating WordPress websites. After giving a talk at WordCamp Asia on the “invisible gotchas” of WordPress translation, Leonardo joins us to discuss both the moral and practical arguments for making your site multilingual, and how the technology has changed the landscape for site owners and developers alike.

I suspect that many listeners have considered translating their WordPress websites, whether for legal compliance or to reach a wider audience, but may be unsure where to start or if the investment is worthwhile. As Leonardo explains, the ease and affordability introduced by AI-powered translation tools have changed the landscape. What used to require costly human translators and time-consuming workflows can now often be handled with a few clicks, and for a fraction of the price.

Leonardo starts by sharing his background in plugin development and the evolution of translation plugins over the past decade. We then get into how AI translations work, why manual oversight still matters, and how the new features coming to WordPress, such as collaborative editing and deeper AI integration, will impact workflows and user experience.

We also discuss plugin strategies around managing multiple translations, SEO considerations, and the best practices for ensuring your translations are accurate and efficient. Leonardo gives practical advice on how to avoid wasting resources when updating posts, and offers his perspective on the “arms race” of translation as AI becomes ubiquitous, and why, as it gets easier, keeping up with competitors becomes essential.

If you’re interested in making your site multilingual or just want to hear how WordPress translation technology is evolving, this episode is for you.

Useful links

The Invisible Gotchas of WP Translation – WordCamp Asia 2026 presentation from Leonardo

YouTube video of the presentation above

Gato GraphQL plugin

 Gato AI Translations for Polylang plugin

Polylang plugin

 TranslatePress

Weglot

MultilingualPress

WPML

DeepL

Open Channels FM: News on the Do the Woo Podcast

0

“Do the Woo” is now a standalone podcast at dothewoo.com. Subscribe for new episodes, extensive show notes, and upcoming features while archives remain on Open Channels FM.

Greg Ziółkowski: Memory in WordPress Core: Building on Guidelines

0

When I wrote about WordPress Core AI 7.1 planning a few weeks ago, I called Guidelines my top personal priority and mentioned memories and skills as future primitives this work would unlock. This post explains what I mean by memory in this context, why I think it belongs in core rather than in a plugin, […]

Introducing ActiveLayer: AI-Powered Spam Protection for WordPress

0

Want better spam protection for your WordPress forms without frustrating your visitors?

Imagine your contact forms, signup forms, and comments could block spam without having to show a single CAPTCHA to your real visitors. They fill out the form, hit submit, and move on. No puzzles, friction, or lost leads.

Sadly, most spam tools take too long to decide whether a submission is spam, which can hurt form conversions.  They also restrict the number of sites you can protect and charge unreasonably high prices. 

It simply shouldn’t be this hard or this expensive to stop spam.

That’s why today, I’m excited to announce ActiveLayer, an AI-powered spam protection that catches spam server-side in milliseconds.

activelayer announcement

We built ActiveLayer to block spam, never to block your customers. It works with every WordPress form plugin you already use, and on any custom platform through a clean REST API.

Think of it as a smart security guard for your forms. It welcomes real people, blocks bots, and never asks anyone to prove they are human.

Background Story – Why We Built ActiveLayer

If you’ve ever enabled a comment section or published a contact form, then you know how frustrating spam can be. Fake leads, endless moderation, and lost conversions… spam problems can pile up fast.

In fact, a few months ago, one of my forms on WPBeginner was hit by 18,000 spam requests overnight. If they had gone unnoticed, then they could have seriously damaged our sender reputation.

And I know I’m not alone. I regularly hear from WPBeginner readers who are overwhelmed by spam comments and fake form submissions, and are looking for a better way to stop them without hurting the user experience.

CAPTCHAs have always been a last resort to me because they often frustrate real visitors.  The harder the puzzle gets, the more legitimate leads you lose along the way. In fact, studies show that CAPTCHAs can cause up to 40% of users to abandon a form before submitting it.

So, I started testing other spam protection tools on the market. Some were surprisingly slow to make decisions, and when they blocked legitimate users, there was often no clear explanation why. On top of that, many of them came with enterprise-style pricing that simply didn’t make sense for small businesses.

I also tried simpler approaches like honeypots and rate limiting. They work fine… until they don’t. The moment a mildly determined attacker shows up, spam starts slipping through again.

So, I sat down with my team and set a challenge: let’s build a spam protection tool that actually understands modern spam, never punishes real visitors, and still stays affordable for businesses of every size.

That’s exactly what ActiveLayer delivers.

What Is ActiveLayer?

activelayer homepage

ActiveLayer is a complete spam protection solution that detects spam in user-submitted content and returns a confidence score with every verdict. The moment a user submits a comment or form, ActiveLayer analyzes it and delivers a verdict within milliseconds.  

You can use ActiveLayer in two ways:

– A WordPress plugin that connects natively to WordPress native comments and all popular form builders, including WPForms, Contact Form 7, Elementor Forms, and more.

– A REST API that drops into any backend stack: Node.js, Next.js, Python, PHP, Laravel, Rails, .NET, and any framework that makes HTTP requests.

The plugin is free to install from WordPress.org. A free ActiveLayer account includes 1,000 spam checks to get started.

Detect Spam in Milliseconds 

Most spam tools take 2+ seconds to decide whether a submission is spam… a delay that kills conversions. ActiveLayer, on the other hand, makes a decision in milliseconds, faster than a typical database query.

activelayer-speed-illustration

In other words, the spam check happens quietly in the background and no tracking scripts load on your pages. 

The result is zero friction, faster page loads, no lost conversions, and no spam cluttering your inbox.

Works With the Form Builders You Already Use

The ActiveLayer WordPress plugin protects your forms and comments in minutes. Install the plugin, enter your API key, and enable protection per form with a simple checkbox. 

activelayer integrations

It works natively with the popular WordPress form plugins, including WPForms, Gravity Forms, Contact Form 7, and more. There’s nothing to recode and no forms to rebuild.

Get Full Transparency with Confidence Score

Unlike most spam tools, which simply label a submission as spam or not spam, ActiveLayer gives you a numerical signal behind every decision. This is a confidence score that tells you how certain ActiveLayer is about its decision.

This makes it easier to understand how aggressive the spam detection is instead of relying on a system you have to blindly trust. 

If ActiveLayer ever gets something wrong, then you can send feedback to help improve future detections.

Centralized Dashboard to Combat Spam

If you manage multiple WordPress sites, then you know how annoying it can be to juggle separate spam settings and dashboards for each one.

ActiveLayer gives you a single place to monitor spam protection across all your sites. 

activelayer dashboard

You can invite team members, view client-level reports, and manage everything from one dashboard without dealing with per-site limits or complicated setups.

Get Unlimited Sites with Every Plan

Most spam protection tools charge per site, which gets expensive fast if you manage multiple websites. In many cases, you end up paying more while getting fewer spam checks and stricter limits.

ActiveLayer keeps things simple. Every plan includes unlimited sites and full API access. The Pro plan offers 5,000 spam checks per month, starting at just $4/month billed yearly. That’s less than $0.07 per day for peace of mind.

The affordable pricing makes it a practical option for small businesses, freelancers, agencies, and developers managing multiple sites.

Instead of worrying about site limits or upgrading plans every time you launch a new project, you can protect all your WordPress sites from a single account.

And if you just want to test things out first, there’s also a free plan with 1,000 one-time spam checks for unlimited sites, full API access, and no credit card required. You can install the free plugin from here.

What’s Coming Next!

My goal with WPBeginner has always been to help small businesses grow and compete with the big guys.

Every large company already has systems in place to protect their websites from spam and abuse. We’re building ActiveLayer to help level the playing field, so small businesses can protect their WordPress sites without sacrificing performance, conversions, or user experience.

We’re just getting started, and I’m incredibly excited about what’s ahead. My goal is to make ActiveLayer the best spam protection solution for WordPress, and the best way to do that is by listening to your feedback and building the features you actually need.

If you have ideas for features, integrations, or workflows you’d like to see, please send us your suggestions.

And if you’ve been putting off improving spam protection because existing solutions felt too expensive or complicated, then I hope you’ll give ActiveLayer a try. The free plan is genuinely free, and you can get started protecting your forms and comments in just a few minutes.

Thank you for your continued support of WPBeginner and the products I’ve been part of over the years. 

Let’s make the web a little less spammy together.

Yours Truly,

Syed Balkhi
Founder of WPBeginner

The post Introducing ActiveLayer: AI-Powered Spam Protection for WordPress first appeared on WPBeginner.

PPOM v27.0.0 Update: Template Library, Live Preview & More

0

PPOM v27.0.0 update introduces a new template library, live product preview, WooCommerce block cart support, variation-based conditional fields, a rebuilt builder UI, performance improvements, and 30+ bug fixes for faster, easier product customization.

The post PPOM v27.0.0 Update: Template Library, Live Preview & More appeared first on Themeisle Blog.

Open Channels FM: Elevate Your Brand With Authentic Case Studies That Resonate

0

In this Open Makers episode, host Adam Weeks and guest Elena Yovcheva-Tileva discuss crafting impactful case studies. They emphasize storytelling, client involvement, and practical strategies for creating narratives that highlight successful outcomes, boosting trust and engagement.