web-dev-qa-db-fra.com

load_child_theme_textdomain ne fonctionne pas dans function.php

J'ai un thème pour enfants qui n'est pas localisé. J'ai donc ajouté ceci dans function.php

add_action( 'after_setup_theme', 'my_child_theme_setup' );
function my_child_theme_setup() {
    load_child_theme_textdomain( 'mytheme', get_stylesheet_directory() . '/languages' );
}

Ça ne marche pas J'ai cherché pendant des heures et j'ai lu que quelqu'un conseillait de placer ceci en haut de header.php

load_child_theme_textdomain( 'mytheme', get_stylesheet_directory() . '/languages' );

Soudain, cela a commencé à fonctionner.

Le problème est résolu, mais je suis toujours curieux de savoir pourquoi la procédure légale n'a pas fonctionné. L'un de vous a une explication?

1
borayeris

Tout d'abord, faites attention à votre langue s'il vous plaît. S'il y a des gros mots dans votre code, veuillez le supprimer avant de poster votre code.

OK, pour en venir à votre question, votre code n’est pas faux. Ça a l'air sain. Quel thème parent utilisez-vous?

J'ai un thème enfant qui n'est pas localisé

Vous devriez regarder comment vos chaînes sont localisées. Vous devriez également avoir à regarder votre nom de vos fichiers de langue. Allez jeter un coup d'œil au codex . Rappelez-vous toujours, utilisez le codex comme référence. Vous pouvez également consulter ce didacticiel pour en savoir plus.

En dehors de cela, vous devriez être prêt à partir

MODIFIER

Je voudrais garder la première partie de cette réponse comme référence pour d’autres. Votre question m'a laissé perplexe, puis elle m'a frappé comme un éclair, j'ai également manqué l'erreur la plus évidente, votre modèle est mal nommé.

Il y a une énorme différence entre function.php et functions.php. Wordpress reconnaît et utilise automatiquement functions.php comme modèle de fonctions principales dans un thème. Ce modèle n'a pas besoin d'être appelé. En revanche, function.php n'est qu'un modèle sans hiérarchie. Ce modèle doit être appelé d’une manière ou d’une autre dans votre thème pour que wordpress sache quand et comment l’utiliser.

Donc, sur votre question, il suffit de renommer votre function.php en functions.php

2
Pieter Goosen