dans mon thème, je veux définir une série de types de messages personnalisés et de taxonomies personnalisées, chacun ayant son propre slug personnalisé; la langue de base de mon thème est l'anglais, donc les slugs seront en anglais
par exemple, lors de la définition du slug d'arguments de type de produit personnalisé "produit":
'rewrite' => array( 'slug' => 'product' ),
existe-t-il un moyen de traduire le "slug" à travers des fichiers po / mo? puis-je le dire comme:
'rewrite' => array( 'slug' => __('product', 'mytextdomain') )
ou ça ne marchera pas? quelle est la pratique actuelle pour localiser les limaces?
prensa
avec un slug défini surprensa
. En utilisant WPML, le slug de la page traduite estpress
tel qu'il ne peut plus êtreprensa
: / en / press / qui n'affiche rien (notez que maintenant cliquer sur le lien ES ne vous ramène pas à / prensa /). MAIS, si vous visitez / en / prensa / ça marche ...Réponses:
Je n'essaierais pas de localiser tes limaces. Au lieu de cela, pourquoi ne pas donner à vos utilisateurs la possibilité de les modifier en ajoutant un autre champ à la page des paramètres de permalien?
Accrochez-vous
load-options-permalink.php
et configurez certaines choses pour attraper les$_POST
données pour enregistrer votre limace. Ajoutez également un champ de paramètres à la page.Ensuite, la fonction de rappel pour le champ des paramètres:
Ensuite, lorsque vous enregistrez votre type de publication, saisissez le slug avec
get_option
. Si ce n'est pas le cas, utilisez votre valeur par défaut.Voici la partie du champ des paramètres en tant que plugin https://gist.github.com/1275867
EDIT: une autre option
Vous pouvez également modifier le slug en fonction de ce qui est défini dans la
WPLANG
constante.Écrivez simplement une fonction rapide qui contient des données ...
Obtenez ensuite le slug où vous enregistrez votre type de publication personnalisé.
La meilleure option, l'OMI, serait à la fois de donner à l'utilisateur une option et de fournir des valeurs par défaut solides:
la source
wpse30021
?Si cela ne fonctionne pas, pourquoi ne pas simplement faire:
la source
C'est exactement ce que je fais dans un thème que nous développons. Il est disponible en 5 langues distinctes, et chaque langue a un ensemble traduit de catégories. Le premier composant de l'URL dans le thème est analysé pour déterminer la langue utilisée, au format de la langue du pays:
Et puis les catégories traduites sont analysées en tant que composants supplémentaires de l'URL.
L'URL est analysée dans la
parse_request
phase:Cet exemple est dépourvu des vérifications requises, mais n'est donné qu'à titre d'exemple.
Cette approche présente certes des inconvénients, mais elle autorise les URL naturelles dans toutes les langues. Les principaux inconvénients que je vois sont:
1) Il n'utilise pas le mécanisme de permalien. Cela pourrait probablement être étendu afin que les règles de permalien appropriées pour toutes les langues soient générées et que parse_request ne soit pas nécessaire, mais le faire pour toutes les langues impliquerait de charger un fichier MO après l'autre dans une boucle, et je ne le fais pas savoir à quel point cela est bien soutenu.
2) Si un traducteur change un slug, alors les liens sont invalidés.
la source
Vous pouvez essayer ceci dans votre
functions.php
comme on le voit ici
la source
Je recommanderais de ne pas rendre les limaces traduisibles .
La traduction concerne le contenu du site accessible aux utilisateurs . Les limaces sont utilisées en interne et ne sont que marginalement accessibles au public via des réécritures d'URL - et les URL ne doivent pas non plus être traduisibles .
Alors: laissez vos limaces tranquilles, comme vous les définissez. Faites uniquement des chaînes traduisibles qui sont destinées à la consommation publique .
la source