Anhang-Seiten zu Mediendateien umleiten

Bei der Arbeit an einem Projekt habe ich diese Woche eine interessante Entdeckung gemacht. Die Website hatte nur zwei Kommentare – es ist ein WooCommerce-Shop, also sind Kommentare nicht wirklich wichtig. Diese beiden Kommentare wurden aber auf einer Anhang-Seite abgegeben. Die Seite hatte den Titel „contact-2“ und war ein Header-Bild. Vermutlich hatte jemand nach der „Kontakt“-Seite der Website gesucht und diese Seite mit dem Kommentarformular gefunden und dann das Kommentare-Formular mit einem Kontaktformular verwechselt.

Was ist eine Anhang-Seite?

Für diejenigen von euch, die noch nie auf eine Anhang-Seite gestoßen sind, möchte ich kurz erklären, was diese sind. Einige von euch wissen vielleicht, dass für jede Datei, die man in die Medienbibliothek hochlädt, ein Datenbankeintrag angelegt wird. Diese Einträge befinden sich in der Tabelle wp_posts mit dem Beitragstyp attachment. Jede Mediendatei ist also „ein Beitrag“. Und da der Beitragstyp „Anhang“ auf public eingestellt ist, hat jede Mediendatei auch eine Anhang-Seite.

In dem oben genannten Fall wurde eine Datei mit dem Namen „contact.jpg“ hochgeladen. Da es bereits eine reguläre Seite mit dem Titel „contact“ gab, hat WordPress das Suffix „-2“ angehängt. Ich hatte letztes Jahr einen Blogbeitrag über dieses Suffix geschrieben und wie man es entfernt. Aber was bedeutet das nun? Wenn ihr auf eine URL wie https://example.com/contact-2 zugreift, dann erhaltet ihr eine Seite, die möglicherweise die Vorlage singular.php eures Themes verwendet, es sei denn, das Theme hat eine bessere Vorlage für Anhänge.

Auf dieser Seite seht ihr dann die Mediendatei, im Falle eines Bildes in voller Größe. Auf der Demoseite für das Twenty Nineteen-Theme können ihr eine solche Anhang-Seite sehen. Diese URL verwendet den Parameter attachment_id, der die Post-ID des Anhangs (Mediendatei) angibt. Ihr könnten auch den p Parameter verwenden, der dann eine Weiterleitung macht. Je nachdem wie eure Permalinks eingestellt sind, könntet ihr aber auch eine „schöne URL“ wie die bereits erwähnte „contact-2“ URL sehen.

Warum ihr eine Anhang-Seite (nicht) haben wollt

Wenn ihr einen medienlastigen Blog habt und Kommentare zu euren Mediendateien zulassen möchtet, kann eine Anhang-Seite sinnvoll sein. Aber für die meisten Websites würden sie nur die Anzahl der Seiten auf eurer Website „aufblähen“. Sie könnten auch mit einigen „normalen Seiten“ in Konflikt stehen.

Diese Anhang-Seiten sind auch für Suchmaschinen sichtbar und da sie nur den Dateinamen als Titel verwenden, kann es passieren, dass eine solche Seite (mehr) Besuche hat, die ihr eigentlich auf den normalen Seiten haben wollt. Glücklicherweise tauchen die Anhang-Seiten nicht in den Sitemaps auf.

Wie entfernt man die Anhang-Seiten?

Ihr könnt sie nicht wirklich „entfernen“. Ihr könnt sie „nicht öffentlich“ machen, aber es gibt einen einfacheren Weg. Wenn ihr eine neue WordPress-Seite mit WordPress 6.4 eingerichtet habt, können ihr jetzt aufhören weiterzulesen, denn ihr habt schon eine Lösung.

Wenn eure WordPress-Installation älter ist, können ihr eine neue Option verwenden, die in WordPress 6.4 eingeführt wurde, um die URL einer Anhang-Seite auf die URL einer Mediendatei umzuleiten.

Die Option mit der WP-CLI setzen

Ich verwende für solche Aufgaben normalerweise die WP-CLI. Wenn ihr sie auch einsetzt, können ihr den folgenden Befehl ausführen:

wp option set wp_attachment_pages_enabled 0

Ein Wert von 0 für die Option wp_attachment_pages_enabled deaktiviert die Anhang-Seiten und die Funktion redirect_canonical() würde dann auf die Mediendatei umleiten.

Die options.php Seite verwenden

Wenn ihr die WP-CLI nicht verwendet oder es nicht könnt, dann können ihr alternativ eine „versteckte Funktion“ im WordPress-Dashboard verwenden. Navigiert hierzu zur URL wp-admin/options.php im Dashboard. Dort werden alle Optionen angezeigt und manche können auch bearbeitet werden. Sucht hier nach dem Namen der Option, ändern den Wert von 1 auf 0 und speichern die Optionen über die Button „Änderungen speichern“ am Ende der Optionsseite.

Ein SEO-Plugin verwenden

Einige SEO-Plugins bieten ebenfalls die Möglichkeit, die Seiten mit den Anhängen umzuleiten (oder sie anders zu deaktivieren). Ich verwende Yoast SEO auf den meisten meiner Seiten und hier finden ihr die Einstellung für Anhang-Seiten unter „Yoast SEO > Einstellungen > Erweitert > Medienseiten“. In diesem Abschnitt stellt die Option „Aktiviere medien Seiten“ auf „aus“. Wenn ihr stattdessen die Anhang-Seiten doch verwenden möchtet, können ihr hier einige andere Einstellungen für Anhang-Seiten vornehmen.

Fazit

Es ist leicht zu vergessen, dass es Anhang-Seiten in WordPress gibt. Wahrscheinlich gab es in der Vergangenheit gute Gründe, sie zu haben. Aber auf einer typischen Website will man sie wohl eher nicht haben. Glücklicherweise können ihr sie jetzt ohne zusätzliche Plugins „abschalten“.

Veröffentlicht von

Bernhard ist fest angestellter Webentwickler, entwickelt in seiner Freizeit Plugins, schreibt in seinem Blog über WordPress und andere Themen, treibt sich gerne bei den WP Meetups in Berlin und Potsdam herum und läuft nach Feierabend den ein oder anderen Halbmarathon.

Schreibe einen Kommentar

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