I have noticed that in the <html>
tag on my WP site that the language is defined as US English.
<html lang="en-US" prefix="og: http://ogp.me/ns#">
I would like to change it to British English en-GB
but I’m not sure of the best way.
I dug around and found language_attributes()
in general-template.php
which makes a call to get_bloginfo('language')
. I could manually insert the value here but that doesn’t seem like the best way to do it.
What is the proper way to change this value?
2 s
The value for that string is normally taken from the option WPLANG
in your database table $prefix_options
. You can set it in the backend under Settings/General (wp-admin/options-general.php
) or per SQL.
There several ways to change that value per PHP:
-
Create a global variable
$locale
in yourwp-config.php
:$locale="en_GB";
-
Declare the constant
WPLANG
in yourwp-config.php
:define( 'WPLANG', 'en_GB' );
This has been deprecated, but it’ll still work.
-
Filter
locale
:add_filter( 'locale', function() { return 'en_GB'; });
This a very flexible way, because you can add more conditions to that function, for example check the current site ID in a multisite.