web-dev-qa-db-fra.com

Obtenir une langue de blog (champ "lang_id" du site vs paramètre WPLANG)

Il existe une table wp_blogs qui est très utile lorsque vous souhaitez obtenir une liste de blogs (et c'est ce que je dois faire).

Le problème est que je n'arrive pas à obtenir la langue du blog à partir du champ lang_id de cette table. Cela ne correspond tout simplement pas à l'option WPLANG définie dans la table d'options de chaque blog.

Oui, je pourrais passer à chaque blog et faire une get_bloginfo('language'), mais cela coûte assez cher lorsque vous avez un grand nombre de blogs.

Alors quoi de neuf avec ce champ lang_id? Pourquoi est-ce?

3
onetrickpony

Je ne sais pas à quoi sert l'option lang_id. Autant que je sache, cela ne fait pas partie des options de base de WordPress.

Si vous souhaitez vérifier la langue de tous les blogs, vous pouvez consulter WPLANG dans la table d'options du blog ou utiliser l'option WPLANG du réseau (ou échouer avec les paramètres régionaux requis) de la même manière que la fonction get_locale () de WordPress.

Je vous recommande de consulter le code source de WordPress. Vous verrez que la fonction get_bloginfo () est essentiellement un wrapper permettant d’obtenir des options ou d’appeler d’autres fonctions pour récupérer les données demandées. Dans le cas du paramètre 'language', il appelle la fonction get_locale () qui réside dans wp-includes/l10n.php

Voir: http://phpxref.ftwr.co.uk/wordpress/nav.html?_functions/index.html

L'examen de la fonction get_locale () montre que pour récupérer les paramètres régionaux/la langue d'un site dans une configuration multisite WordPress, il:

  1. Vérifier si les paramètres régionaux ont été définis et le renvoyer après l'application du filtre "paramètres régionaux"

  2. Si la variable locale n'a pas été définie, l'option WPLANG sera cochée dans les options par défaut de WordPress (par site).

  3. Si l'option WPLANG du site est vide ou n'existe pas, elle vérifie les options du réseau pour l'option WPLANG.

  4. Si tout échoue, supposons que les paramètres régionaux sont en_US

2
BjornW