Change WordPress html lang attribute based on template filename

This might be a rather seldom needed feature, but I need it for my blog (yes, this one).

As I am writing my blog posts in both english (for technical stuff) and german (for all the other stuff), I need to change the html’s lang attribute  to display the correct language code.


How am I using it?

I am using an extra template file for my english blog posts. The filename is single-english.php .  So whenever I am writing an english post like this one, I select the correct template for it.

This image shows my Template selector, which lets me chose between the standard template and the english post template.

Override WordPress‘ language_attributes function

To change the html’s lang attribute , we need to override the language_attributes  function. To do so, I inserted the following code into my theme’s functions.php  file.

Within this function, I get the page template used by the current post. I then check whether my filename is present in the returned template path. If so, I set the variable $lang  to en-US . The standard language is have pre-set is de-DE .

Change WordPress html lang attribute based on template filename
Wie bewertests Du diesen Beitrag? Rate this postplease.

Kommentar verfassen