MobilePress hat ausgedient

Nachdem ich vor einiger Zeit darüber berichtet habe, wie einfach es ist, mit dem Plugin MobilePress eine mobile Version des eigenen WordPress-Blogs bereit zu stellen, möchte ich heute einmal ein Update zu dem Thema liefern.

Fangen wir von vorne an: Mit der Seite ready.mobi kann man überprüfen, wie gut die eigene Seite auf mobilen Geräten darstellbar ist. Leider fällt die Desktopversion von WeizenSpr.eu in diesem Test kläglich durch:

ready.mobi: WeizenSpr.eu

ready.mobi: WeizenSpr.eu

Wie es scheint, haben sich die Kriterien auf ready.mobi weiterentwickelt, während das damals verwendete MobilePress jedoch in der Entwicklung stehengeblieben ist. Das führt dazu, dass bei mir inzwischen nicht mehr allzu gute Ergebnisse damit erzielt wurden:

ready.mobi: MobilePress

ready.mobi: MobilePress

Aus diesem Grund habe ich nun nach einer Alternative gesucht. Zuerst stieß ich auf das WordPress Mobile Pack, dass sich jedoch bei mir aufgrund angeblich fehlender Schreibrechte nicht installieren ließ. Nachdem ich fast meine gesamte WordPress-Installation unsicher gemacht hatte, um die Installation vielleicht doch durchführen zu können, habe ich es sein lassen und mich weiter umgesehen.

Nach weiterer Suche bin ich nun auf das Plugin WordPress Mobile Edition gestoßen und werde dieses nun erst einmal für mich in Anspruch nehmen. Die Installation ist relativ einfach und besteht aus zwei Schritten:

  • Zuerst kopiert man das enthaltene Theme in den normalen themes-Ordner.
  • Anschließend verschiebt man die Datei wp-mobile.php in den normalen plugins-Ordner und aktiviert dann in der Administrationsoberfläche das Plugin WordPress Mobile Edition.

Als Ergebnis erhält man eine fast perfekte mobile Internetseite. 😉
(Update: WeizenSpr.eu verwendet inzwischen ein responsive Design, dass sich automatisch der Bildschirmgröße anpasst. Ein Umschalten zwischen verschiedenen Themes mit Hilfe eines Plugins ist daher nicht mehr nötig.)

ready.mobi: WordPress Mobile Edition

ready.mobi: WordPress Mobile Edition

Anhand des Parameters cf_action kann man nun das Anzeigen der mobilen (Wert: show_mobile) oder der normalen (Wert: reject_mobile) Webseite erzwingen.

Es bedarf allerdings ein paar Anpassungen, um das Plugin wirklich abzurunden. Damit nicht unter jedem Artikel ein Link mit dem Text "Return to the Mobile Edition" angezeigt, der einen von der Desktopvariante zur Mobilvariante zurücklotst, kann man in der Funktion cfmobi_init() die folgende Zeile einfach auskommentieren:

1
add_action('the_content', 'cfmobi_mobile_available');

Als zweites kann man noch das Problem lösen, dass beim Umschalten zur Mobilversion (und vice versa) einfach die Hauptseite angezeigt wird und nicht die Unterseite, auf der man sich gerade befindet. Dazu entfernt man in den Funktionen cfmobi_mobile_exit() und cfmobi_mobile_link() zuerst einmal folgenden Quelltext:

1
'.trailingslashit(get_bloginfo('home')).'

Danach sorgen wir dafür, dass bei Vorhandensein des entsprechenden Parameters direkt die mobile/nicht-mobile Seite angezeigt wird. Bisher wird im ersten Schritt ein Cookie gesetzt und nach der Relocation dieses Cookie ausgelesen und die Seite entsprechend gerendet. Diesen Vorgang können wir durch eine kleine Änderung beschleunigen und gleichzeitig die Relocation rausschmeißen. 😉
Hierfür gehen wir zuerst einmal in die Funktion cfmobi_check_mobile() und gehen runter bis zur letzten Zeile:

1
return apply_filters('cfmobi_check_mobile', $mobile);

Direkt über dieser fügen wir folgenden Code-Schnipsel ein:

1
2
3
4
5
6
7
8
9
10
if (!empty($_GET['cf_action'])) {
  switch ($_GET['cf_action']) {
    case 'reject_mobile':
      $mobile = false;
      break;
    case 'show_mobile':
      $mobile = true;
      break;
  }
}

Um nun zu verhinden, dass der Redirect stattfindet, gehen wir anschließend in die Funktion cfmobi_request_handler() und kommentieren dort folgenden Codeblock aus:

1
2
3
4
5
6
7
8
9
if ($redirect) {
  if (!empty($_SERVER['HTTP_REFERER'])) {
    $go = $_SERVER['HTTP_REFERER'];
  } else {
    $go = get_bloginfo('home');
  }
  header('Location: '.$go);
  die();
}

Natürlich kann man auch noch beliebige Änderungen am Template vornehmen - welcher meiner Meinung nach übrigens äußerst angenehm strukturiert wurde. Aber das ist eine andere Geschichte. 😀

Update:
Durch die Erkenntnisse, die ich für den Artikel WP Mobile Edition und Subdomains gesammelt habe, konnte ich die Implementierung hier ebenfalls verbessern.

Mobile Grüße, Kenny

8 Kommentare » Schreibe einen Kommentar

  1. Pingback: Horst Mobile » Horst-Working

  2. Guter Beitrag!
    Habe mich auch für die WordPress Mobile Edition entschieden und bin zufrieden.
    Habe nur noch nicht herausfinden können wie ich eine Subdomain für die Mobile-Version einrichte!?
    Du schreibst: "Natürlich kann man diese Parameter dank .htaccess-Datei auch wieder wunderbar hinter Subdomains verstecken"
    Verrätst du mir wie das funktioniert? 😀
    LG, pEtEr

    • Weil du so lieb gefragt hast. 😀

      Die .htaccess von Mobile.WeizenSpr.eu sieht wie folgt aus:

      1
      2
      3
      4
      5
      6
      RewriteEngine on
      Options +FollowSymLinks
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ https://weizenspr.eu/$1?cf_action=show_mobile [L,QSA]

      Und bei Desktop.WeizenSpr.eu sieht die .htaccess so aus:

      1
      2
      3
      4
      5
      6
      RewriteEngine on
      Options +FollowSymLinks
      RewriteBase /
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ https://weizenspr.eu/$1?cf_action=reject_mobile [L,QSA]
      • Hallo,
        vielen danke für die Info! Allerdings ist das nicht ganz das was ich mir vorgestellt habe. Wenn ich es richtig verstehe, bekomme ich das so auch mit einer (Sub)-Domain-Weiterleitung hin.
        Ich suche nach einem Weg, um alle Mobile-Anfragen dauerhaft auf eine Subdoimain umzuleiten, ohne dass beim klicken auf einen Deeplink in der mobile Version wieder über die eigentliche Domain zurückgeleitet wird.
        Hoffe, ich konnte mein Anliegen einigermaßen Verständlich ausdrücken 😉
        Cheers, pEtEr

        • Hatte schon überlegt, ob das eher dem entsprechen würde, was du dir vorstellst. Leider ist das mit meiner (mir vorgegebenen) Serverkonfiguration nicht möglich. Man könnte evtl. versuchen, das ganze durch Einsatz eines kleinen PHP-Scriptes zu ändern. Ich guck' mal, ob ich was zusammenklöppeln kann.

  3. Cooler Artikel. Da ich seit nem Monat ein Internethandy habe werde ich in Zukunft auch öfter mit dem Thema zu tun haben und meinen Blog auch mobil-fähig machen, obwohl er bisher recht gut auf dem Handy zu lesen ist.

    mobiReady stuft meinen Blog mit 2 ein... obwohl ich bei jedem Bild ordentlich an der Größe schraube, bevor es reinkommt. Aber ich hab ziemlich viele Bilder ^^

    • Weiter unten auf ready.mobi siehst du, in welchen Punkten die Seite schlecht abschneidet. Da kommen auch noch andere Dinge hinzu wie z.B. die Formatierung der Seite (absolute Positionierung, Tabellen, etc pp.).

      Die eigene Seite ist durch Nutzung des Plugins zwar erstmal nicht mehr ganz so einzigartig, aber dafür mobil wirklich gut lesbar. Habe es nun auch auf coltishWARE.com installiert - die Vorteile überwiegen halt einfach.

Schreibe einen Kommentar

Um Ihnen beim weiteren Kommentieren auf dieser Webseite die erneute Eingabe Ihrer Daten zu ersparen, wird beim Absenden Ihres Kommentars ein Cookie an Ihren Browser gesendet und von diesem gespeichert. Mit dem Absenden eines Kommentars auf dieser Webseite stimmen Sie der Speicherung und Übertragung dieses Cookies explizit zu.

Pflichtfelder sind mit * markiert.