J'utilise le plugin WPML pour traduire mon site. J'ai un type de message personnalisé appelé "vinos" et j'utilise ceci args:
$args = array(
'labels' => $labels,
'hierarchical' => false,
'supports' => array('title', 'thumbnail'),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 6,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => 'nuestros-vinos/catalogo',
'query_var' => true,
'can_export' => true,
'capability_type' => 'post',
'rewrite' => array('slug' => 'nuestros-vinos/catalogo/marcas/%marcas%')
);
register_post_type('vinos', $args);
Le problème est que je ne peux pas traduire ma chaîne "nuestros-vinos/catalogo/marcas" en anglais et pour cette raison, mes URL sont les suivantes:
www.domain.com/nuestros-vinos/catalogo/ ---------> Voir toute ma liste de vins en espagnol www.domain.com/fr/nuestros-vinos/catalogo/ ------ > afficher toute ma liste de vins en anglais
mais je voudrais que dans la version anglaise, l'URL était:
www.domain.com/fr/our-wines/catalog/
J'essaie d'utiliser des règles de réécriture:
add_filter('generate_rewrite_rules', 'customposttype_rewrites');
function customposttype_rewrites($wp_rewrite) {
$newrules = array();
$newrules['en/our-wines/catalog/?$'] = 'en/index.php?post_type=vinos';
$wp_rewrite->rules = $newrules + $wp_rewrite->rules;
}
Mais cela ne fonctionne pas, toujours page non trouvée.
Comment puis-je le faire?
Merci.
cela ne fonctionnera pas:
'en/index.php?post_type=vinos'
il n'y a pas de en/index.php
, il doit être:
'index.php?post_type=vinos'
si vous devez détecter en
dans le chemin, ajoutez une requête, puis définissez-la dans votre réécriture:
function wpa_query_vars( $qvars ) {
$qvars[] = 'wpa_lang';
return $qvars;
}
add_filter( 'query_vars', 'wpa_query_vars' );
puis dans votre règle de réécriture:
$newrules['en/our-wines/catalog/?$'] = 'index.php?post_type=vinos&wpa_lang=en';
Essayez la solution mentionnée ici: http://wpengineer.com/2044/custom-post-type-and-permalink/ qui implique essentiellement de ré-enregistrer vos paramètres de permalien.
Exemple: définissez les permaliens sur la structure par défaut, enregistrez. Basculez sur la structure de permalien de votre choix, enregistrez à nouveau, puis vérifiez à nouveau si le problème de post-permalien personnalisé persiste.
J'ai eu 404 problèmes dans le passé avec des permaliens de publication personnalisés et la solution mentionnée ci-dessus a fonctionné pour moi.
Edit: En outre, j'espère que vous n'avez activé aucun plugin de mise en cache pendant le codage, vous avez simplement oublié de le mentionner.