Blog

WordPress um Mitglieder-Funktionen erweitern

21. August 2014

WordPress ist eine Software zum Erstellen und Betreiben von Blogs. Das ist ihre Hauptaufgabe und darauf konzentrieren sich auch ihre Entwickler. Und diese Aufgabe löst WordPress ganz hervorragend – so gut, dass es mittlerweile die meistgenutzte Blogsoftware weltweit ist.

Und das hat seine Gründe: Die Benutzeroberfläche lässt sich einfach bedienen und bietet viele leistungsfähige Werkzeuge für die Erstellung, Gestaltung und Pflege von Beiträgen. Auf der anderen Seite ist WordPress auch technisch recht einfach aufgebaut, läuft auf fast allen Webservern und lässt sich durch Plugins und Themes erweitern und stark an die eigenen Bedürfnisse anpassen.

Kein Wunder also, dass die meisten Seitenbetreiber WordPress am liebsten gleich für alles einsetzen möchten: Als CMS für die eigene Internetseite, als Ausstellungsseite für Bilder und Videos, als Mitgliederforum, als Online-Shop, … usw.
Und da sich WordPress selbst eben „nur“ auf seine Hauptaufgabe konzentriert, ist das mit Bordmitteln nicht immer ganz einfach umzusetzen. Aber glücklicherweise gibt es ja mittlerweile über 32.000 Plugins für jede erdenkliche Aufgabe …

Mitgliedersystem

In diesem Beitrag soll es um die Nutzung von WordPress als Mitgliedersystem gehen, welches ich im Zuge eines kürzlich bearbeiteten Auftrages einrichten sollte. Ziel war eine Internetseite mit einem öffentlichen und einem geschützten Bereich. Der geschützte Bereich sollte nur Mitgliedern zur Verfügung stehen, welche über die WordPress-eigene Benutzerverwaltung angelegt und bearbeitet werden sollten.

Das WordPress Benutzer-System mit seinen Rollen und Berechtigungen liefert dafür auch gleich eine solide Basis. Mitglieder sind hier einfach Benutzer mit der Abonnenten-Rolle, welche später noch entsprechend umgetauft wird.

Zu den Anforderungen des Kunden gehörte zudem der Austausch und die Bereitstellung von geschützten bzw. vertraulichen Dateien unter den Mitgliedern. Achja, und das Hochladen einer (potenziell riesigen) CSV-Tabelle, die den Mitgliedern nur häppchenweise angezeigt werden sollte.

Der geschützte Bereich soll sich schließlich in der (ansonsten öffentlichen) Menüstruktur wiederspiegeln. Hierbei soll der erste Menüpunkt (etwa „Mitgliederbereich“) noch immer sichtbar sein, das restliche Mitgliedermenü jedoch nur nach Anmeldung. Bekommen wir hin!

Nicht ohne (m)ein Plugin

Ab Werk bietet WordPress diese Funktionen nicht. Sie müssen also per Plugin(s) nachgerüstet werden. Unter den über 32.000 Plugins im offiziellen WordPress Plugin-Verzeichnis finden sich so einige aussichtsreiche Kandidaten. Meine Anforderungen an die Plugins waren und sind:

  • Gute Qualität (des Programmcodes) und Zuverlässigkeit
  • Genau definierte Funktionsweise
  • Sparsamkeit in der Einbindung von zusätzlichen CSS- und JavaScript-Dateien
  • Sparsamkeit in der Erstellung von Daten(müll)
  • Schlank und auf Einsatzzweck spezialisiert

An den letzten drei Punkten scheitern leider die meisten Kandidaten. Dabei sind gerade die besonders wichtig. Nicht nur, dass große, mit Funktionen vollgestopfte Plugins WordPress verlangsamen und i.d.R. mit Daten vollmüllen, von denen man 90% meist gar nicht braucht, es besteht auch ein enormes Sicherheitsrisiko für die gesamte Internetseite.

Denn: Je größer und umfangreicher das Plugin, desto mehr Sicherheitslücken und Fehler enthält es. Berichte der letzten Monate haben die (unterschätzte) Gefahr von zu sorglos eingesetzten WordPress-Plugins deutlich gezeigt. Zudem sind die Änderungen der meisten Plugins an der eigenen WordPress-Installation kaum nachvollziehbar – geschweige denn rückgängig zu machen.

WP3 Plugin-Sammlung

Logo der WP3 Plugins
Logo der WP3 Plugins

Da ich keine befriedigenden Plugins mit den oben genannten Eigenschaften finden konnte, habe ich kurzerhand meine eigenen Erweiterungen geschrieben und sie in einer „WP3“ (ep-3 + WP) getauften WordPress Plugin-Sammlung zusammengefasst. Neben der Erfüllung der eigenen Anforderungen flossen noch folgende Gedanken mit in die Entwicklung ein:

  • Die Plugins sollten sich jeweils auf genau eine, klar definierte Aufgabe spezialisieren
  • Die Plugins sollten schlank und klein sein und möglichst viele Aufgaben an WordPress delegieren
  • Die Plugins sollten sich gegenseitig ergänzen und gut zusammenarbeiten

Herausgekommen sind drei Plugins:

WP3 User Pages

Das erste Plugin ermöglicht geschützte Seiten, Beiträge und Menüs, welche nur für Mitglieder nach Anmeldung sichtbar sind.

Hervorzuheben ist hierbei, dass das Plugin auf WordPress‘ bereits integrierter Sichtbarkeit „Privat“ für Seiten und Beiträge aufbaut, die den Zugriff ab Werk nur Administratoren und Redakteuren erlaubt. Das hat drei wesentliche Vorteile:

  • Minimale Änderungen an der Benutzeroberfläche und Datenbank
  • Erhöhte Sicherheit und Zuverlässigkeit, da die kritischen Mechanismen von WordPress selbst übernommen werden und tief in die Software integriert sind
  • Geschützte Seiten und Beiträge bleiben auch nach Deaktivierung des Plugins privat

Insbesondere letzteres ist wichtig, da ein Plugin aus ganz verschiedenen Gründen schonmal deaktiviert werden kann/muss (z.B. durch neue WordPress-Versionen, Fehler, Wartung, …) und sensible Daten somit sofort öffentlich werden würden.

Zudem fügt das Plugin noch die Auswahl der Sichtbarkeit für Menüpunkte hinzu. Einfach aber effektiv: Somit können Menüpunkte individuell umgestellt und gezielt nur für Mitglieder angezeigt werden.

Weitere Informationen und das Plugin zum Herunterladen finden sich auf der WP3 User Pages Projektseite.

WP3 User Files

Das zweite Plugin ermöglicht es angemeldeten Benutzern, Dateien hoch- und herunterzuladen, die nur sie selbst und die Administratoren der Seite in einer geschützten Dateiliste sehen können.

Das Hauptaugenmerk bei diesem Plugin lag auf der Sicherheit der hochgeladenen Dateien. WordPress besitzt normalerweise genau ein öffentliches Verzeichnis für alle hochgeladenen Dateien, egal von welchem Benutzer und egal ob diese zu einer öffentlichen oder privaten Seite hochgeladen wurden. Der einzige Schutz bei sensiblen Dateien ist dann, dass niemand den Dateinamen kennt (auch bekannt unter Security through obscurity). Und das ist in der Regel unzureichend.

Das WP3 User Files Plugin erstellt ein geschütztes Verzeichnis, dessen Dateien nicht direkt heruntergeladen werden können. Eine spezielle Seite ist dafür zuständig, Dateianfragen zu prüfen (also ob angemeldet und berechtigt) und die Dateien aus dem geschützten Verzeichnis anschließend weiterzuleiten.

Auch hier gilt wieder: Wird das Plugin deaktiviert, bleiben die Dateien geschützt.

Weitere Informationen und das Plugin zum Herunterladen finden sich auf der WP3 User Files Projektseite.

WP3 Table Provider

Das dritte und (vorerst) letzte Plugin ist zugegebenermaßen ein Werkzeug für eine sehr spezielle Aufgabe. Es ermöglicht das Hochladen einer Tabelle in Form einer CSV-Datei, welche dann per Shortcode in Seiten oder Beiträge eingefügt werden kann.

Neben der scrollbaren Darstellung kann man für sehr umfangreiche Tabellen noch  optional einstellen, dass nach einer oder mehreren Spalten gefiltert werden kann. Zudem kann man die (gefilterte) Tabelle anschließend zum Herunterladen anbieten.

Weitere Informationen und das Plugin zum Herunterladen finden sich auf der WP3 Table Provider Projektseite.

Last but not least …

Einfach umzusetzen und nicht zu vernachlässigen ist natürlich noch die Umbenennung der Abonnenten-Rolle z.B. zu „Mitglied“. Die functions.php-Datei des eigenen Themes ist der richtige Ort dafür.

Bitte lesen Sie unsere Hinweise zum Datenschutz bevor Sie diese Buttons nutzen