- WordPress :6.2
- Statut : non résolu
- Ce sujet contient 0 réponse, 1 participant et a été mis à jour pour la dernière fois par
artenis, le il y a 1 mois.
-
AuteurMessages
-
21 août 2023 à 13 h 10 min #2459408
Bonjour,
Ma configuration WP actuelle
- Version de PHP/MySQL : 8.0.30/5.7.41
- Thème utilisé : Création personnelle
- Extensions en place : créations personnelles , Advanced Editor Tools, Classic editor
- Nom de l’hébergeur : Ionos
- Adresse du site : secrète pour l’instant
Problème(s) rencontré(s) : Je requiert des conseils ou des suggestions ou des liens vers des exemples qui pourrait me guider sur l’utilisation des fonctions WordPress pour :
- Ajouter n’importe quelle langue après le nom de domaine et ses sous-domaines ex: https://ssdomain.domain.com/langue. La langue doit s’afficher automatiquement au chargement de n’importe quel page lors de la localisation du navigateur, serveur client ou timestamp ou l’adresse IP. Si la localisation ne peut être défini utiliser la langue par défaut de WordPress (WPLANG = fr). Pour le test je force la langue en « fr » ou « en ».
- Ces langues seront générées en php et le contenu des pages sera traduit lorsque le tag « lang » de <html> contiendra le code ISO de langage (fr_FR, en_GB, de_DE, es_ES, etc). Au clic de boutons (français, anglais, allemand, espagnol, etc) la langue changera.
- L’extension de traduction est créée : une page spécifique a été créée pour récupérer les contenus d’un article, des boutons avec drapeaux ont été placés dans la page spécifique et dans une nouvelle colonie de la liste des articles wordpress et ajouter des champs de traduction. Les traductions sont ajoutés avec add_post_meta() et sérialisés pour savoir qu’un post meta de traduction par article.
- Actuellement j’essaie de comprendre si je dois utiliser le .HTACCESS ou les fonctions dédiées de réécriture de WordPress : le HTACCES est normalement utile pour des catégories permanente hors les langues sont générés en PHP.
add_permastruct(); add_rewrite_tag(); add_rewrite_rule(); add_rewrite_endpoint();
Je n’arrive pas à savoir si une redirection est nécessaire « wp_redirect(); » après l’utilisation des fonctions de réécriture pour justement forcer le site WordPress à se charger automatiquement avec la langue détecter (ou inscrite dans le code).
J’ai trois sous domaines (sd1, sd2, sd3) pour l’instant, au click de la page d’accueil (domain.com) on est redirigé automatiquement sur sd1.
- Je suis en train d’apprendre le regex mais je n’arrive pas à savoir si j’en ai besoin au regard de la ou des fonctions de réécritures nécessaires. Un exemple : (?:https:\/\/)?(?:([^.]+)\.)?domain\.com/ que j’ai récupérer mais je ne sais pas comment l’utiliser .
Le code suivant fonctionne partiellement en ajoutant uniquement « https://domain.com/langue » en ignorant les sous domaines :
- Si je fais un test de langue avec une autre fonction, la version « https://domain.com/en » affiche bien la traduction anglaise pour la page d’accueil.
- Mon site est entièrement conçu avec l’utilisation des sous-domaines !
- Je ne sais pas si je peux utiliser le regex précédent (pour inclure n’importe quel sous domain et ajouter $_SERVER[‘HTTP_HOST’] au début de add_rewrite_endpoint() avant $lang.
function lang_support() {
return array('fr','en');
}
function rewrite_lang(){
$langs = lang_support();
foreach($langs as $lang) {
add_rewrite_endpoint($lang,EP_PERMALINK|EP_PAGES|EP_ROOT|EP_CATEGORIES);
}
}
add_action('init','rewrite_lang');J’avais songé à utiliser ces fonctions à la place de « add_rewrite_endpoint » mais elles ne marchent pas en l’état même pour le nom de domaine uniquement :
add_permastruct( 'atvlang', $lang.'/%my_slug%', [ 'ep_mask' => EP_PERMALINK ] );
add_rewrite_tag( '%my_slug%', '([^/]+)', "post_type=page&name=" );Merci par avance.
-
AuteurMessages
- Vous devez être connecté pour répondre à ce sujet.