Querdenkender Webworker mit WordPress-Affinität

Extend BWP GXS – Eigene Inhalte in der XML Sitemap

Es kommt immer mal vor, dass man auf einer Website, die eigentlich mit WordPress angetrieben wird, auch Seiten zu Verfügung stellt, die im Filesystem bereits als statische HTML-Dateien vorliegen. Oder man lässt dynamische Contents ausliefern, die erst zum Zeitpunkt des Abrufs erzeugt bzw. aktualisiert. Solche Ressourcen müssen dem CMS nicht unbedingt bekannt sein und das schafft in der Regel auch keine Probleme.

Allerdings tauchen die URLs zu diesen Inhalten auch nicht in der XML Sitemap auf, was (entweder gewünscht oder aber) immer dann ärgerlich ist, wenn es sich bei den Inhalten um etwas handelt, was man entweder nur schwer in den Suchmaschinenindex bekommt und/oder was eine wichtige Schlüsselrolle bei der betreffenden Website spielt. In meinem Fall ging es um eine ganze Reihe von KML-Files …

BWP GXS bietet eine Lösung

Nutzt man das Plugin mit dem (knackigen) Namen Better WordPress Google XML Sitemaps (kürzer BWP GXS), um eine XML Sitemap automatisch zu erzeugen, kann man da aber nachhelfen: In der functions.php des eigenen Themas oder besser noch in einem eigenen Plugin lassen sich Codes unterbringen, die dann zur Ausführung kommen, wenn die entsprechende Hooks von BWP GXS ausgelöst werden.

Das hört sich komplizierter an, als es in Wirklichkeit ist. Ich habe bereits ein Beispiel bei GitHub untergebracht, das ich noch Schritt für Schritt erklären möchte. Der komplette Code enthält lediglich vier überschaubare Funktionen und eine Klasse, welche ein Modul darstellt, so wie es von BWP GXS erwartet wird.

Mein Beispiel im Detail

Wenn ihr euch die Datei mxs.php des Plugins anschaut, seht ihr die bereits angesprochenen Funktionen. mxs_flush_rules ist reiner Komfort. Die Funktion sorgt dafür, dass die Rewrite Regeln zurückgesetzt werden, wenn das Plugin aktiviert bzw. deaktiviert wird. So spare ich mir den manuellen Schritt, die Seite für die Konfiguration der Permalinks im Backend aufrufen zu müssen.

Not Found

Mittels mxs_add_modules informiere ich BWP GXS darüber, dass ich ein weiteres Modul hinzufügen möchte, dessen Namen ich auch gleich mit übergebe. Diese und die darauf folgende Funktion sind am wichtigsten.

Not Found

Da es sich um ein unabhängiges Modul handelt, welches nicht von einem der vorhanden abgeleitet wurde, erstelle ich mittels mxs_add_rules eine Rewrite Regel, was dann auch gleich noch den Zweck von mxs_flush_rules erklärt.

Not Found

Außerdem teile ich BWP GXS noch mit, wo sich mein Verzeichnis mit dem Modul befindet. Man kann das auch in der Konfiguration des Plugins angeben. Ich halte das aber für etwas ungeschickt, weil ich glaube, dass das zu Fehlern führen kann, die man nicht so leicht findet, wenn man mal grundlegend etwas an der Website ändert (beispielsweise den Hoster).

Not Found

Zum Schluss muss dann noch eine Klasse erstellt werden, welche die Klasse BWP_GXS_MODULE erweitert, damit sie als Modul überhaupt akzeptiert wird. Hier ist dann auch der einzige Aufwand für euch zu erwarten. Prinzipiell müsst ihr aber nur die Methode build_data etwas abändern bzw. an eure Gegebenheiten anpassen.

Not Found

Die beispielhafte specials.php ist natürlich ganz auf meine Bedürfnisse zugeschnitten, kann aber – meiner Meinung nach – durchaus kleinere Details erklären, falls ihr mit den Infos des Authors des Sitemap Plugin nicht so richtig klarkommt. Ruft man schließlich (nach Aktivierung des Plugins) die Sitemap der Website direkt auf, sollte nun ein entsprechender Link zur “speziellen” Sitemap sichtbar sein.

Have fun!

Das könnte Dich auch interessieren:

Kommentare

  1. Gute Anleitung! Aber es gibt doch auch WordPress Plugins, bei denen man bestimmte Seiten, Posts etc. in die sitemap hinzufügen oder entfernen kann (z.b. durch Angabe der ID).

    • realloc meint:

      Ja, das ist richtig. Aber wenn man viele Seiten, die eventuell auch noch automatisch entstanden sind, hinzufuegen will, kann das ganz schön zeitraubend werden. ;)

  2. Sehr gute Anleitung. Obwohl ich das SEO Plugin von Yoast nutze. Da ist eine XML Sitemap includiert. Das vereinfacht die Sache ungemein ;)

    • realloc meint:

      Ja, ich weiss. Aber, wenn ich mich richtig erinnere, ist dort das Sitemap-Plugin von Arne Brachhold integriert, was – für diesel speziellen Fall hier – keine Wahl wäre.

  3. Nicht schlecht, gleich mal heute ausprobieren. So ähnlich ist doch auch das XML Plugin von Wp aufgebaut…

    Grüße

    • Es gibt ja an sich kein WordPress Standard Plugin für die XML Sitemap. Es kann auch gut sein, dass das BWP GXS Plugin so eine Art “Quasi” Standard wird …

  4. Ich bin mit dem Plugin eigentlich zufrieden, aber nur auf “normalen” WordPress installationen – auf einem meiner größeren Projekten, einer MU-Installation läuft das Plugin leider nur eingeschränkt…

    • Wie äußern sich diese Probleme? Ich hatte bisher keine negativen Erfahrungen mit dem Plugin gemacht und lasse es auch auf einer Multisite laufen.

  5. Hy Dennis, es ist dieser Blöde Stylesheet Fehler – kannst du hier “bewundern”… – http://blog.singleaktiv.de/sitemap.xml/ ist für den SuMa-Monopolisten zwar nicht schlimm, aber schön is es nicht… ;-)

  6. realloc meint:

    Interessant. Ist das Plugin für alle Blogs aktiviert?

  7. Yes – ist mit der Website die ich angegeben hab verbunden – kannst dir gerne mal ansehen… ;-)

  8. Danke für den Tipp – sowas hab ich schon gesucht weil dass was mein SEO Modul mir hier anbietet mir persönlich nicht gereicht hat – aber ich bin irgendwie durch die zahlreichen Plugins am Schluß komplett verwirrt gewesen, zumal man ja eigentlich alles erstmal einbauen und austesten müsste – was bei einem laufenden Projekt nicht gerade gut ist…

Ihre Meinung ist uns wichtig

*