WPML
Statut
Résolu par l’auteur
Extension/thème associé
SEOPress
Étiquettes de sujet
Compatibility

Aperçu de l’anomalie

Lors de l’utilisation de SEOPress avec WPML, les URL canoniques pour le contenu non traduit ne pointent pas vers la langue par défaut lorsque les méthodes « Langue par défaut comme solution de repli » ou « Duplication de contenu » sont utilisées. Cela peut entraîner des problèmes de contenu dupliqué.

Solution de contournement

Assurez-vous d’avoir une sauvegarde complète de votre site avant de continuer.

  • Ouvrez : …/wp-content/plugins/wp-seopress/inc/functions/options-titles-metas.php
  • Cherchez la ligne 1022
  • Remplacez :
            function seopress_titles_canonical_hook() {
                global $wp;
    
                $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request)));
    
                if (is_search()) {
                    $seopress_titles_canonical = '';
                } elseif (is_paged() && is_singular()) {//Paginated pages
                    $seopress_titles_canonical = '';
                } elseif (is_paged()) {
                    $seopress_titles_canonical = '';
                } elseif (is_singular()) {
                    $seopress_titles_canonical = '';
                } else {
                    $seopress_titles_canonical = '';
                }
                //Hook on post canonical URL - 'seopress_titles_canonical'
                if (has_filter('seopress_titles_canonical')) {
                    $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical);
                }
                echo $seopress_titles_canonical . "n";
            }
  • Par :
            function seopress_titles_canonical_hook() {
                global $wp;
    
                $current_url = user_trailingslashit(home_url(add_query_arg([], $wp->request)));
                // WPML Workaround for compsupp-7703
                if (class_exists('SitePress')) {
                  $post_ID = get_the_ID();
                  $post_type = get_post_type( $post_ID );
                  $transl_status = apply_filters( 'wpml_element_translation_type', NULL, $post_ID, $post_type );
                  // If the post is not translated, switch to the default language
                  if ($transl_status != 1) { 
                      $my_default_lang = apply_filters('wpml_default_language', NULL );
                      $my_current_lang = apply_filters( 'wpml_current_language', NULL );
                      do_action( 'wpml_switch_language', $my_default_lang );
                  } 
                }
                if (is_search()) {
                    $seopress_titles_canonical = '';
                } elseif (is_paged() && is_singular()) {//Paginated pages
                    $seopress_titles_canonical = '';
                } elseif (is_paged()) {
                    $seopress_titles_canonical = '';
                } elseif (is_singular()) {
                    $seopress_titles_canonical = '';
                } else {
                    $seopress_titles_canonical = '';
                }
                // Then switch back to the current language
                if (class_exists('SitePress')) {
                    if ($transl_status != 1) {
                      do_action( 'wpml_switch_language', $my_current_lang );
                    }
                }
                //Hook on post canonical URL - 'seopress_titles_canonical'
                if (has_filter('seopress_titles_canonical')) {
                    $seopress_titles_canonical = apply_filters('seopress_titles_canonical', $seopress_titles_canonical);
                }
                echo $seopress_titles_canonical . "n";
            }

Toutes les anomalies connues →