Ankerlink an den Anfang der Seite
übrig
„übrig“ Foto von Gabriele Lässer

Nach einem Relaunch blieb in der SEOPress-Sitemap ein nicht mehr vorhandener Post Type aus einem früheren Kadence-Theme-Projekt sichtbar. Der Beitrag beschreibt, dass das Entfernen über die normalen Einstellungen nicht funktionierte, weil der Eintrag zwar in SEOPress gespeichert war, aber im System selbst nicht mehr auftauchte.

Gezeigt werden zwei PHP-Lösungen, um den Post Type direkt aus den SEOPress-Optionen zu löschen oder ihn beim Auslesen der Optionen auszublenden. Das Snippet kann vorübergehend als Plugin oder in der functions.php genutzt werden, bis der unerwünschte Sitemap-Eintrag entfernt ist.

Der Relaunch war durch, die SEO-Einstellungen nochmal geprüft, ein Blick auf die sitemap.xml geworfen, und da war sie, die Post Type Sitemap für kadence_element, das es in dem Projekt gar nicht (mehr) gab. Das Projekt war einst auf dem Kadence-Theme aufgebaut, und offenbar war der Post Type ein Überbleibsel davon.

Ich stellte die Sitemap neu zusammen, leerte den Cache – doch das nützte nichts. Der Post Type schien nirgendwo auf, und so konnte ich ihn auch nicht aus den Einstellungen entfernen.

Möglicherweise könnte einem das auch mit anderen öffentlichen Post Types passieren, die im Zuge eines Relaunches oder einer Umstrukturierung „verschwinden“, aber in der SEOPress-Konfiguration dennoch vorhanden sind. So bekommt man betroffene Einträge aus der SEOPress-Sitemap entfernt:

add_action('init', function () {
  if (get_option('cleanup_seopress_kadence_element_cleaned')) {
    return;
  }
  $options = get_option('seopress_xml_sitemap_option_name');
  if (! is_array($options)) {
    return;
  }
  if (! isset($options['seopress_xml_sitemap_post_types_list']['kadence_element'])) {
    update_option('cleanup_seopress_kadence_element_cleaned', 1);
    return;
  }
  unset($options['seopress_xml_sitemap_post_types_list']['kadence_element']);
  update_option('seopress_xml_sitemap_option_name', $options);
  update_option('cleanup_seopress_kadence_element_cleaned', 1);
  // Optional: rewrite rules flush if sitemap URLs still cached oddly.
  flush_rewrite_rules(false);
}, 20);

Das Snippet in Form eines Plugins oder in der functions.php verwenden, Sitemap aufrufen. Der unerwünschte Post Type Eintrag sollte nun weg sein. Das Snippet kann wieder gelöscht werden.

Post Type entfernen, auch wenn er in den SEOPress-Settings ist

/**
 * Keep kadence_element out of SEOPress sitemap (even if stored in options).
 */
add_filter( 'option_seopress_xml_sitemap_option_name', function ( $value ) {
	if ( ! is_array( $value ) || empty( $value['seopress_xml_sitemap_post_types_list'] ) ) {
		return $value;
	}
	unset( $value['seopress_xml_sitemap_post_types_list']['kadence_element'] );
	return $value;
} );

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Hinweis: Name und E-Mail-Adresse (beides optional, da alle Kommentare moderiert werden) werden dauerhaft gespeichert. Über dieses Formular kann jeder Zeit die Löschung persönlicher Daten oder Kommentare angefordert werden; die Anfrage wird nicht veröffentlicht und nach der Bearbeitung gelöscht. IP-Adressen, die mit Kommentaren gespeichert werden, werden nach zwei Monaten automatisch gelöscht.