WPML
Status
Gelöst
Gemeldet für
WPML SEO 2.1.0
Gelöst in
2.2.0
Zugehöriges Plugin/Theme
Rank Math SEO
Themen-Tags
Compatibility

Übersicht über das Problem

Der Shortcode rank_math_html_sitemap, der vom Plugin Rank Math SEO bereitgestellt wird, zeigt eine HTML-Sitemap an, die Seiten aus allen Sprachen enthält, anstatt Inhalte nur in der aktuellen Sprache anzuzeigen.

Problemumgehung

Bitte stellen Sie sicher, dass Sie über ein vollständiges Backup Ihrer Website verfügen, bevor Sie fortfahren.


  • Öffnen Sie die Datei …/wp-content/plugins/seo-by-rank-math/includes/modules/sitemap/html-sitemap/class-posts.php.

  • Suchen Sie nach Zeile 88.

  • Ersetzen Sie:
    		$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

  • durch:
    		$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

Beachten Sie, dass Sie Ihre Sitemaps möglicherweise zurücksetzen müssen. Sie können dies tun, indem Sie zu Rank Math SEO > Sitemap-Einstellungen gehen, eine Einstellung ändern und sie wieder zurückändern.

Alle bekannten Probleme →