How to translate WordPress site’s custom blog posts URL structure

Share Now

To update your WordPress site’s blog post URL structure to include /blog/ (and translated equivalents for WPML), follow these steps:

  1.  Go to Settings > Permalinks.
  2. Under Custom Structure, enter: /blog/%postname%/
  3. Save changes. This changes your English post URLs to /blog/{slug}/.

 

If you’re not seeing “blog” in WPML > String Translation, it’s likely because WordPress doesn’t register the /blog/ base as a translatable string by default — you need to register it manually using WPML’s filters.

Here’s how to fix it:
Use WPML’s wpml_register_single_string to Register “blog”
Add this to your theme’s functions.php

function register_blog_base_slug_with_wpml() {
    do_action( 'wpml_register_single_string', 'Permalinks', 'blog slug', 'blog' );
}
add_action( 'init', 'register_blog_base_slug_with_wpml' );

Now go to WPML > String Translation, and search for:

  • Domain: Permalinks
  • Name: blog slug

 

Then add translations:

  • Arabic: مدونة
  • German: blog
  • Spanish: blog
Picture of Nahid Mahamud

Nahid Mahamud

Web Developer | Graphic Designer | WordPress & Woo-commerce Expert