WPML
Estado
Resuelto por el autor
Notificado para
WPML SEO 2.1.0
Resuelto en
SEOPress 8.4
Plugin/tema relacionado
SEOPress
Etiquetas de temática
Compatibility

Resumen del problema

Al usar el plugin SEOPress con WPML, los slugs del archivo de productos no se traducen correctamente en los sitemaps XML generados por SEOPress.

Solución alternativa

Por favor, asegúrese de tener una copia de seguridad completa de su sitio antes de continuar.


  • Abra el archivo …/wp-content/plugins/wp-seopress/templates/sitemap/single.php.

  • Busque la línea 41.

  • Reemplace:
    // WPML Workaround
    if (class_exists('SitePress')) {
    	if ( 2 != apply_filters( 'wpml_setting', false, 'language_negotiation_type' ) ) {
    		$original_language = apply_filters( 'wpml_current_language', NULL );
    		$language_list = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' );
    
    		if (!empty($language_list)) {
    			foreach ($language_list as $key => $language_infos ) {
    				if ($original_language != $language_infos['language_code']) {
    
    					// Switch Language
    					do_action( 'wpml_switch_language', $language_infos['language_code']);
    
    					$archive_links[] = htmlspecialchars(urldecode(user_trailingslashit(get_post_type_archive_link($path))));
    
    					// Restore language to the original
    					do_action( 'wpml_switch_language', $original_language);
    				}
    			}
    		}
    	}

  • Por:
    // WPML Workaround for compsupp-7538 and compsupp-6419
    if ( class_exists('SitePress' )) {
    	if ( 2 != apply_filters( 'wpml_setting', false, 'language_negotiation_type' ) ) {
    		$original_language = apply_filters( 'wpml_current_language', NULL );
    		$language_list = apply_filters( 'wpml_active_languages', NULL, 'orderby=id&order=desc' );
    
    		if (!empty($language_list)) {
    			foreach ($language_list as $key => $language_infos ) {
    				if ($original_language != $language_infos['language_code']) {
    					// Switch Language
    					do_action( 'wpml_switch_language', $language_infos['language_code']);
    
    					if ( $path == 'product' && function_exists('wc_get_page_id') ) {
    						$shop_page_id = wc_get_page_id('shop');
    						$archive_links[] = 	htmlspecialchars(urldecode(user_trailingslashit(get_permalink($shop_page_id))));
    					} else {
    						$archive_links[] = htmlspecialchars(urldecode(user_trailingslashit(get_post_type_archive_link($path))));	
    					}
    
    					// Restore language to the original
    					do_action( 'wpml_switch_language', $original_language);
    				}
    			}
    		}
    	}
    }

Todos los problemas conocidos →