Von Alexander Trust am 14.01.2020 (letztes Update: 14.01.2020).

WordPress: herausfinden, ob eine Seite AMP nutzt

Wordpress - Wallpaper
Wordpress – Wallpaper

Wie findet man heraus, ob eine WordPress-Webseite AMP nutzt? Auch wenn man sich diese Frage sicher auch aus Sicht eines Lesers stellen könnte, wollen wir die Frage aber für andere Webseitenbetreiber und WordPress-Nutzer beantworten. Denn dort draußen gibt es mindestens zwei große Plug-ins, mit denen die eigene Webseite AMPifiziert werden kann. Will man dann aber nur auf der Desktop-Variante ein bestimmtes Widget ausgeben, weil es nicht mit AMP kompatibel ist, gerät die Suche im Netz zur Suche nach der Nadel im Heuhaufen.

Dabei ist es im Prinzip ganz einfach. Denn PHP bietet einige Methoden an, mit denen man globale Variablen abrufen kann, die bei einem Webseiten-Aufruf mit Inhalt gefüllt werden.

Die Krux mit AMP und den Plug-ins

Es gibt ein Plug-in namens AMP, das von „Wordpress“ und Google gemeinsam entwickelt wird. Daneben gibt es „AMP for WP“ oder auch „Accelerated Mobile Pages“ von den Kaludi-Brüdern. Beide haben zusammen rund eine halbe Million Nutzer.

Es gibt dazu aber noch eine ganze Reihe weiterer Plug-ins, die weniger bekannt und verbreitet sind.

Bei der Suche im Netz kommt es also schwer darauf an, wonach man sucht. Da aber die beiden Bekanntesten Plug-ins sehr „generische“ Namen verwenden erhält man bei Google auch sehr viele Antworten.

So findet man heraus, ob eine Webseite AMP nutzt

Es kann sein, dass das eine Plug-in eine Methode namens is_amp_endpoint() anbietet, dieser aber beim nächsten Plug-in schon nicht mehr funktioniert. Warum also nicht eine universell einsetzbare Lösung anstreben?

Die gibt es. Wenn Ihr für hübschere Permalinks die Ausgabe von AMP-URLs mittels /amp/ und nicht mit ?amp realisiert, kann die Lösung zum Beispiel so ausschauen:

<?php if(function_exists('related_posts')) {
if(false === strpos($_SERVER['REQUEST_URI'], '/amp/')) { related_posts(); }
} ?>

Ihr fragt mit $_SERVER['REQUEST_URI'] einfach die globale Variable ab und vergleicht dann deren Inhalt. Im vorliegenden Fall mit der Methode strpos. Die liefert wahlweise false zurück, oder eine Ziffer für die Position, an der das Suchwort gefunden wurde.

Logik bei der Auswertung beachten

Wir wollen aber auf der Desktop-Seite etwas ausgeben. Also lautet die Logik, dass bei der Suche nach /amp/ nichts herauskommt und false zurückgegeben wird. Wenn also false === false ist, wird das, was danach kommt ausgeführt.

In unserem Fall wollen wir ein Plug-in für ähnliche Artikel ausgeben, das aber nicht AMP-kompatibel ist; mit dem function_exists stellt Ihr sicher, dass wie in unserem Fall das Plug-in auch die passende Methode bereitstellt. Sonst kommt es zu unschönen Fehlermeldungen, falls Ihr es mal deaktiviert oder durch ein anderes ersetzt.

Alternativen

Falls Ihr doch eine Lösung mit dem Parameter ?amp nutzt, gibt es noch eine andere PHP-Methode, die genau die URL-Parameter abfragen kann. Das würde zum Beispiel so ausschauen.

<?php if(isset($_GET['amp'])) { echo 'test'; } ?>

Sag jetzt deine Meinung!