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