Entwickler-Schnittstellen
FG Sitemap WP stellt mehrere WordPress-Filter und Actions zur projektspezifischen Erweiterung bereit. Der aktuelle Code registriert keine eigenen REST-Endpunkte, AJAX-Handler oder WP-CLI-Kommandos.
PHP-Accessor
Section titled “PHP-Accessor”Die Hauptdatei stellt einen Komfort-Accessor bereit:
$sitemap = fg_sitemap_wp();Er liefert die Singleton-Instanz von FG_Sitemap_WP.
Der Code enthält mehrere öffentliche Methoden für die interne WordPress-Integration und den Admin-Bereich. Eine separate Stabilitäts- oder Semantic-Versioning-Zusage für diese PHP-Methoden ist im Projekt nicht definiert. Für Erweiterungen sind deshalb die benannten WordPress-Hooks die klarer ausgewiesenen Schnittstellen.
Filter
Section titled “Filter”fg_sitemap_wp_is_url_excluded
Section titled “fg_sitemap_wp_is_url_excluded”Typ: Filter
Zentraler URL-Ausschluss. Der Filter wird auch unmittelbar vor der XML-Ausgabe angewendet.
Parameter:
bool $excludedstring $urlstring $contextint $object_idDokumentierte Kontexte aus dem Code:
homepostpost_type_archivetermauthordate_archiveextraxmlBeispiel:
add_filter('fg_sitemap_wp_is_url_excluded', function (bool $excluded, string $url, string $context, int $object_id): bool { if (str_contains($url, '/interner-bereich/')) { return true; }
return $excluded;}, 10, 4);fg_sitemap_wp_is_post_excluded
Section titled “fg_sitemap_wp_is_post_excluded”Typ: Filter
Erlaubt einen zusätzlichen Ausschluss nach den eingebauten Post-Prüfungen.
Parameter:
bool $excludedint $post_idBeispiel:
add_filter('fg_sitemap_wp_is_post_excluded', function (bool $excluded, int $post_id): bool { return $excluded || get_post_meta($post_id, '_exclude_from_fg_sitemap', true) === '1';}, 10, 2);fg_sitemap_wp_is_term_excluded
Section titled “fg_sitemap_wp_is_term_excluded”Typ: Filter
Erlaubt einen zusätzlichen Ausschluss von Taxonomie-Begriffen.
Parameter:
bool $excludedWP_Term $termfg_sitemap_wp_post_images
Section titled “fg_sitemap_wp_post_images”Typ: Filter
Ergänzt oder verändert die für einen Post erkannten Bild-URLs.
Parameter:
array $imagesint $post_idstring $page_urlBeispiel:
add_filter('fg_sitemap_wp_post_images', function (array $images, int $post_id, string $page_url): array { $custom = get_post_meta($post_id, '_custom_sitemap_image', true); if (is_string($custom) && $custom !== '') { $images[] = $custom; }
return $images;}, 10, 3);fg_sitemap_wp_include_acf_images
Section titled “fg_sitemap_wp_include_acf_images”Typ: Filter
Steuert die automatische ACF-Bildauswertung pro Post.
Parameter:
bool $includeint $post_idBeispiel:
add_filter('fg_sitemap_wp_include_acf_images', function (bool $include, int $post_id): bool { return $include;}, 10, 2);fg_sitemap_wp_post_canonical_url
Section titled “fg_sitemap_wp_post_canonical_url”Typ: Filter
Verändert den ermittelten Canonical eines Posts vor dem Vergleich mit dem Permalink.
Parameter:
string $canonicalint $post_idstring $permalinkBeispiel:
add_filter('fg_sitemap_wp_post_canonical_url', function (string $canonical, int $post_id, string $permalink): string { return $canonical;}, 10, 3);fg_sitemap_wp_term_canonical_url
Section titled “fg_sitemap_wp_term_canonical_url”Typ: Filter
Verändert den ermittelten Canonical eines Taxonomie-Begriffs.
Parameter:
string $canonicalWP_Term $termstring $permalinkfg_sitemap_wp_post_query_args
Section titled “fg_sitemap_wp_post_query_args”Typ: Filter
Verändert die WP_Query-Argumente einer Post-Type-Child-Sitemap.
Parameter:
array $argsstring $post_typeint $pageBeispiel:
add_filter('fg_sitemap_wp_post_query_args', function (array $args, string $post_type, int $page): array { return $args;}, 10, 3);Änderungen sollten die eingebauten Indexierbarkeitsgrenzen nicht unbeabsichtigt erweitern.
fg_sitemap_wp_indexnow_endpoint
Section titled “fg_sitemap_wp_indexnow_endpoint”Typ: Filter
Ändert den Ziel-Endpoint für IndexNow.
Parameter:
string $endpointBeispiel:
add_filter('fg_sitemap_wp_indexnow_endpoint', function (string $endpoint): string { return $endpoint;});Actions
Section titled “Actions”fg_sitemap_wp_indexnow_submitted
Section titled “fg_sitemap_wp_indexnow_submitted”Typ: Action
Wird nach einem IndexNow-Submit ausgelöst, sowohl bei HTTP-Antworten als auch bei WP_Error.
Parameter:
array $resultarray $url_list$result enthält:
[ 'success' => bool, 'code' => int, 'count' => int, 'message' => string,]Beispiel:
add_action('fg_sitemap_wp_indexnow_submitted', function (array $result, array $url_list): void { if (!$result['success']) { error_log('FG Sitemap IndexNow: ' . $result['message']); }}, 10, 2);Öffentliche IndexNow-Methoden
Section titled “Öffentliche IndexNow-Methoden”Über die Singleton-Instanz sind unter anderem folgende Methoden öffentlich aufrufbar:
fg_sitemap_wp()->queue_indexnow_url('https://example.com/seite/');fg_sitemap_wp()->submit_indexnow_urls(['https://example.com/seite/']);queue_indexnow_url() akzeptiert nur URLs, die die internen Home-URL-Prüfungen bestehen. submit_indexnow_urls() sendet unmittelbar und aktualisiert den gespeicherten Status.
Der Code deklariert diese Methoden als public, enthält aber keine separate Zusage, dass sie als langfristig stabile externe API gepflegt werden.
Sitemap-Cache leeren
Section titled “Sitemap-Cache leeren”Die öffentliche Methode kann aus projektspezifischem PHP aufgerufen werden:
fg_sitemap_wp()->clear_cache();Cron-Hooks
Section titled “Cron-Hooks”fg_sitemap_wp_indexnow_flush
Section titled “fg_sitemap_wp_indexnow_flush”Einmaliger WP-Cron-Hook zur Verarbeitung der IndexNow-Queue.
Die Queue-Funktion plant den Hook nur, wenn noch kein entsprechendes Event vorgesehen ist.
fg_core_send_installation_status
Section titled “fg_core_send_installation_status”Täglicher WP-Cron-Hook der aktiven FG-Core-Runtime. Dieser Hook gehört zur eingebetteten Shared Runtime und nicht zur Sitemap-Erzeugung selbst.
Gemeinsame FG-Core-Schnittstellen
Section titled “Gemeinsame FG-Core-Schnittstellen”Die eingebettete FG-Core-Runtime stellt eigene, pluginübergreifende Schnittstellen bereit. Sie gehören nicht zur XML-Sitemap-Logik, sind aber im ausgelieferten Projekt vorhanden.
Admin- und Runtime-Filter
Section titled “Admin- und Runtime-Filter”fg_core_parent_capabilityfg_core_menu_iconfg_core_menu_positionfg_core_status_reporting_enabledfg_core_status_endpointfg_core_status_payloadfg_core_parent_capability steuert standardmäßig die Capability manage_options des gemeinsamen FUNCKGROUP-Menüs. fg_core_menu_icon und fg_core_menu_position beeinflussen dessen WordPress-Admin-Darstellung.
Die drei fg_core_status_*-Filter betreffen die technische Statusmeldung. Details zur übertragenen Information stehen unter Datenverarbeitung.
FG-Core-Actions
Section titled “FG-Core-Actions”fg_core_loadedfg_core_status_report_sentfg_core_status_report_failedfg_core_loaded wird nach Auswahl und Start der aktiven FG-Core-Runtime ausgelöst. Die beiden Status-Actions melden Erfolg bzw. Fehler eines Status-Requests.
FG-Core-PHP-Funktionen
Section titled “FG-Core-PHP-Funktionen”Der Bootstrap stellt folgende Funktionen bereit, sofern sie noch nicht definiert sind:
fg_core_register_plugin(array $plugin): boolfg_core(): ?\Funckgroup\FGCore\AdminCoreFG Sitemap selbst registriert seinen Admin-Bereich über fg_core_register_plugin().
Admin-Aktionen
Section titled “Admin-Aktionen”FG Sitemap nutzt admin-post.php für:
fg_sitemap_wp_save_settingsfg_sitemap_wp_clear_cachefg_sitemap_wp_indexnow_submit_homeAlle drei Handler prüfen manage_options und einen aktionsspezifischen Nonce.
REST, AJAX, CLI und JavaScript-Events
Section titled “REST, AJAX, CLI und JavaScript-Events”Im aktuellen Projekt sind keine eigenen:
- REST-Routen
wp_ajax_*-Actions- WP-CLI-Kommandos
- JavaScript-Events
implementiert.
Konstanten
Section titled “Konstanten”Die Hauptdatei definiert:
FG_SITEMAP_WP_VERSIONFG_SITEMAP_WP_FILEFG_SITEMAP_WP_DIRFG_SITEMAP_WP_URLFG Core definiert nach Auswahl der aktiven Runtime zusätzlich:
FG_CORE_VERSIONFG_CORE_API_VERSIONFG_CORE_PROVIDER