Champ de thème : à la mode avec la page personnalisation

On connait les champs personnalisés attachés à chaque article, ils sont stockés dans la table wp_postmeta.
La nouvelle mode concernant l’utilisation de la page “personnalisation” (customize) du menu du thème actif fait renaître l’utilisation du tableau “Theme_mods” résultat de l’appel à la fonction get_theme_mods.
Plus directement, on peut accéder à un élément du tableau du thème actif avec les deux fonctions get_theme_mod et set_theme_mod (voir includes/theme.php de WP). Ce tableau est stocké dans la ligne theme_mods_twentyfifteen de la table wp_options ici pour le thème twentyfifteen.

Un thème comme zerif-lite utilise de nombreux champs de ce type à saisir par le webmestre pour, par exemple ajouter des champs dans un header ou d’une page d’accueil multi paragraphe. Le fichier inc/customizer.php contient une (grande) liste de ces champs ajoutés pour personnaliser le site.

get_theme_mod est une fonction qui permet de rendre une valeur par défaut si rien ne pré-existe dans la base.

Cette fonction est aussi filtrable. Si le champ est de type “string” nommé “sous-titre” et si on veut le traduire, on peut utiliser le filtre du nom “theme_mod-sous-titre“.

Si un thème utilise ces functions directement sans une fonction GETTEXT dans le thème, ce filtre sera utile pour faire de la traduction/adaptation dans un contexte multilingue. Via des fichers xml ou une détection adaptée, des gestionnaires de dictionnaire pour préparer les traductions iront détecter ces valeurs afin de préparer les fichiers de langue (.mo, .po).

M.