WPML

Resumen del problema

El shortcode rank_math_html_sitemap proporcionado por el plugin Rank Math SEO muestra un sitemap HTML que incluye páginas de todos los idiomas, en lugar de mostrar contenido solo en el idioma actual.

Solución alternativa

Este problema está solucionado. Actualizar a la última versión lo soluciona en su sitio, por lo que solo necesita esta solución alternativa si aún no puede actualizar.

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

  • Abra el archivo …/wp-content/plugins/seo-by-rank-math/includes/modules/sitemap/html-sitemap/class-posts.php.
  • Busque la línea 88.
  • Cambie:
    $sql       = "
    	SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified
    	FROM (
    		SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p
    		LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' )
    		WHERE (
    			( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR
    			pm.post_id IS NULL
    		)
    		AND p.post_type IN ( '" . $post_type . "' ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' )
    		ORDER BY p.post_modified DESC
    	)
    	o JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore
    return $wpdb->get_results( $wpdb->prepare( $sql ) ); // phpcs:ignore
  • Por:
    $current_language = apply_filters( 'wpml_current_language', NULL );				
    $sql = "
    SELECT l.ID, post_title, post_name, post_parent, post_date, post_type, l.post_modified
    FROM (
    	SELECT DISTINCT p.ID, p.post_modified FROM {$wpdb->posts} as p
    	LEFT JOIN {$wpdb->postmeta} AS pm ON ( p.ID = pm.post_id AND pm.meta_key = 'rank_math_robots' )
    	INNER JOIN {$wpdb->prefix}icl_translations AS icl ON ( p.ID = icl.element_id AND icl.language_code = %s AND icl.element_type LIKE 'post_%' )
    	WHERE (
    		( pm.meta_key = 'rank_math_robots' AND pm.meta_value NOT LIKE '%noindex%' ) OR
    		pm.post_id IS NULL
    	)
    	AND p.post_type IN ( %s ) AND p.post_status IN ( '" . join( "', '", esc_sql( $statuses ) ) . "' )
    	ORDER BY p.post_modified DESC
    ) o
    JOIN {$wpdb->posts} l ON l.ID = o.ID " . $get_child . " ORDER BY " . $sort['field'] . " " . $sort['order']; // phpcs:ignore
    $sql = $wpdb->prepare($sql, $current_language, $post_type);
    return $wpdb->get_results( $sql ); // phpcs:ignore
Tenga en cuenta que es posible que deba restablecer sus sitemaps. Puede hacerlo yendo a Rank Math SEOConfiguración de sitemaps, modificando un ajuste y cambiándolo de nuevo.

Todos los problemas conocidos

¿Sigue teniendo este problema?

Si actualizar no lo soluciona, haga una consulta de soporte y lo revisaremos con usted.