Waiting for author
Reported for: WPML SEO 2.1.0
Overview of the issue
When using SEOPress plugin with WPML, the product archive slugs are not correctly translated in the XML sitemaps generated by SEOPress.
Workaround
Please, make sure of having a full site backup of your site before proceeding.
- Open …/wp-content/plugins/wp-seopress/templates/sitemap/single.php file.
- Look for line 41.
- Replace:
// 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); } } } }
- With:
// 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); } } } } }