Problème : Le client a rencontré un problème où le lien sur le mot 'Français' redirigeait vers la version anglaise de l'article au lieu de la version française sur son site. Après avoir désactivé le plugin WPML Multilingual CMS, les liens corrects s'affichaient. Solution : Nous avons identifié que le sélecteur de langue utilisé n'était pas celui de WPML mais un modèle personnalisé. Nous avons recommandé d'utiliser le sélecteur WPML, disponible ici : https://wpml.org/documentation/getting-started-guide/language-setup/language-switcher-options/adding-language-switchers-using-php-and-shortcodes/
Pour aligner correctement le sélecteur et le texte, nous avons suggéré d'utiliser le code suivant :
<div style="display: flex; align-items: center;"><span>Lire cet article en</span><div class="wpml-inline-switcher">[wpml_language_selector_widget]</div></div>
De plus, pour corriger les problèmes d'alignement causés par le thème, nous avons ajouté du CSS personnalisé sous WPML > Langues > Options du sélecteur de langue > CSS personnalisé.
Si cette solution ne résout pas votre problème ou semble dépassée, nous vous recommandons de vérifier les problèmes connus, de vérifier la version des correctifs permanents et de confirmer que vous avez installé les dernières versions des thèmes et plugins. Si le problème persiste, n'hésitez pas à ouvrir un nouveau ticket de support sur notre forum de support.
Problem: You are trying to import content using WP All Import in the main language and want to duplicate it to other WPML languages simultaneously. However, the WPML All Import add-on does not support this feature, and it is unlikely to be updated as it is a legacy plugin. Solution: We recommend using a custom PHP function during the import process to duplicate imported posts to all active WPML languages. Here is an example function as reference:
function wpml_duplicate_post_to_all_languages($post_id) {
$default_lang = apply_filters( 'wpml_default_language', null );
$current_lang = apply_filters( 'wpml_current_language', null );
// Only duplicate if we're importing in the default language
if ( $current_lang !== $default_lang ) {
return;
}
$languages = apply_filters( 'wpml_get_active_languages', null, array( 'skip_missing' => 0 ) );
foreach ( $languages as $lang_code => $lang_info ) {
if ( $lang_code === $default_lang ) {
continue;
}
$existing_translation_id = apply_filters( 'wpml_object_id', $post_id, get_post_type( $post_id ), false, $lang_code );
if ( ! $existing_translation_id ) {
do_action( 'wpml_make_post_duplicates', $post_id );
}
}
}
Ensure that all important fields for your import are set to "Copy" in WPML → Settings → Custom Field Translation. We recommend testing this function on a staging site first.
If this solution does not apply to your case, or if it seems outdated, please check the related known issues, verify the version of the permanent fix, and confirm that you have installed the latest versions of themes and plugins. If issues persist, we highly recommend opening a new support ticket at WPML support forum.
Problem: Sie möchten, dass alle in WordPress registrierten Benutzer automatisch die Berechtigung erhalten, Übersetzungen für alle Sprachversionen anzulegen und zu verwalten, ohne dass dies manuell jedem Nutzer zugewiesen werden muss. Sie haben bereits versucht, die Berechtigungen an WordPress Rollen zu koppeln, aber die Nutzer können immer noch keine Übersetzungen vornehmen. Solution: Wenn Sie möchten, dass nicht-administrative Benutzer ähnliche Berechtigungen wie ein Admin erhalten, um Übersetzungen durchführen zu können, müssen Sie ihnen die WordPress-Capability
manage_options
zuweisen. Beachten Sie jedoch, dass dies ihnen Zugriff auf alle Optionen in WordPress gibt. Eine programmatische Zuweisung von Rollen und Berechtigungen kann durch das Hinzufügen eines Code-Snippets in der functions.php Ihres Themes oder einem Code Snippet Plugin erfolgen. Hier ist ein Beispiel, wie Sie Benutzer als Übersetzungsmanager und Übersetzer hinzufügen können:
/* Any users apart from Admins or Subscribers will be Translation Managers and Translators. */
function wpml_custom_assign_capability() {
$users = get_users();
foreach ( $users as $user ) {
if ( ! in_array( 'subscriber', $user->roles ) && ! in_array( 'admin', $user->roles )) {
// add as translation manager
$user->add_cap( 'wpml_manage_translation_management' );
// add as translator
$user->add_cap( 'translate' );
}
}
}
Nachdem Sie dieses Snippet hinzugefügt und das Backend neu geladen haben, sollten die Rollen entsprechend angepasst sein. Entfernen Sie das Snippet danach wieder. Für weitere Details zur Verwaltung von WPML-Berechtigungen, besuchen Sie bitte die WPML-Dokumentation. Wenn diese Lösung nicht relevant ist oder veraltet erscheint, empfehlen wir Ihnen, ein neues Support-Ticket zu öffnen. Wir empfehlen auch, die Seite mit bekannten Problemen (https://wpml.org/known-issues/) zu überprüfen, die Version der dauerhaften Lösung zu verifizieren und zu bestätigen, dass Sie die neuesten Versionen von Themes und Plugins installiert haben.