Wordpress-Anpassungen für technikkultur-erfurt.de

Mit der Umstellung auf bytecluster0002 haben wir auf der Domain technikkultur-erfurt.de ein neues Wordpress aufgesetzt. Die alten Wordpress-Installationen werden als statischer Inhalt auf einer Archiv-URL abgelegt, damit sie auch ohne aktive Wordpress-Installation einsehbar sind. Die Serverkonfiguration ist in wordpress dokumentiert, nachfolgend werden nur die innerhalb von Wordpress erfolgten Anpassungen/Plugins etc. aufgeführt.

Wordpress User Enumeration

In WordPress gibt es mehrere Stellen, an denen der Benutzername eines Kontos ausgelesen werden kann. Möchte man dies verhindern, müssen in der functions.php mehrere Filter ergänzt werden. Eine Anleitung dazu findet man auf kultuberbanause.de.

Im aktiven Weblog sind die Änderungen noch nicht eingebaut.

wp-config.php

Cache aktivieren

Die nachfolgende Zeile muss vor require_once ABSPATH . 'wp-settings.php'; eingefügt werden.

define( 'WP_CACHE', true );

Template

User CSS

Verwendet wird aktuell das Template „Modern“ mit folgenden CSS-Anpassungen…

#stc-unsubscribe-checkbox,#stc-all-categories,#stc_categories {width:1em;} #stc-subscribe-btn,#stc-unsubscribe-btn {border: 2px solid #D8D8D8;color:#6A6C6E} .posts .entry {padding-left:1em;padding-right:1em} .sidebar .widget {padding: 1em;} .intro-title { font-size: 3rem; padding: 4% 0; } .sidebar .widget input, .footer-widgets .widget input, .sidebar .widget select, .footer-widgets .widget select, .sidebar .widget textarea, .footer-widgets .widget textarea { -width: 100%; } .entry-content-container, .comments-area-inner, .site-info-inner, .footer-widgets { padding-bottom: 2rem; } .attachment .entry-media, .entry-content-container, .comments-area-inner, .site-info-inner, .footer-widgets { padding-top: 2rem; } .posts .entry-media { margin-left: -1em; margin-right: -1em; margin-bottom: 2.6244em; }

Vorschaubilder

Damit die Vorschaubilder zum Template passen, müssen unter Einstellungen/Medien die Größen der Bilder angepasst werden, die im Standard recht klein und quadratisch sind. Die Anpassungen entspricht den empfohlenen Bildgrößen, welche ebenfalls auf der Seite aufgeführt sind.

Vorschaubilder: 420 x 0

Mittelgroß: 744 x 0

Groß: 1200 x 0

verwendete Plugins

Plugin	Zweck
Advanced Custom Fields	Erlaubt die Definition zusätzlicher Felder, auch abhängig von einzelnen Beiträgen. Wird für das Template „Modern“ empfohlen.
Antispam Bee	Anti-Spam-Plugin als Alternative zu Akismet
Cache Enabler	Cache verwalten und bei Bedarf löschen
Classic Editor	Implementierung des alten Editors ohne WYSIWYG.
Code Snippets	erlaubt das einfügen von Codeblöcken in die functions.php ohne das man die Datei des Themes anpassen muss
Contact Form 7	Kontaktformular
Contextual Related Posts	zeigt ähnliche Beiträge unter einem Artikel an
Disable and Remove Google Fonts	Deaktiviert die Einbindung von Google Fonts in ein Theme ohne das am Code etwas angepasst werden muss. Funktion hängt vom Theme ab, mit „Modern“ scheint es zu passen.
Email Subscribers & Newsletters	versendet E-Mail-Benachrichtigungen bei neuen Beiträgen an Abonennten, hat Double-Opt-In. Derzeit in der Seitenleiste, kann aber auch als eigene Seite genutzt werden.
Enhanced Media Library	Zusätzliche Funktionen für die Media-Bibliothek (z. B. Alben)
Enhanced Text Widget	Wird für den Raumstatus in der Seitenleiste benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt.
Limit Login Attempts Reloaded	Blockiert eine IP für x Minuten bei zu vielen falschen Logins.
Regenerate Thumbnails	Erstellt neue Vorschaubilder, wenn man z. B. in den Media-Einstellungen die Auflösungen geändert hat. Kann normalerweise deaktiviert bleiben, wird nicht regelmäßig benötigt.
Responsive Lightbox & Gallery	Lightbox für Bilder, damit diese in einem Hover aufgehen
Simple Yearly Archive	Übersichtsseite aller veröffentlichten Beiträge
Subscribe To Comments Reloaded	Besucher erhalten auf Wunsch eine E-Mail-Benachrichtigung bei neuen Kommentaren zu einem Artikel, Double-Opt-In ist aktiviert
Two-Factor	2-Faktor-Authentifizierung für Login
WP Githuber MD	Umfangreicher MarkDown-Editor mit Syntax-Highlighting und HTML-Preview innerhalb des Editors
XML Sitemap & Google News	erzeugt XML-Sitemaps für bessere/schnellere Indexierung durch Suchmaschinen

Plugin-Konfiguration

Two Factor

Damit sich bei aktivierter 2FA Apps über die XMLRPC-API einloggen können, muss folgender Code in die functions.php gefügt werden:

add_filter( 'two_factor_user_api_login_enable', function( $enable ) {
// Allow API login when using an application password even with 2fa enabled.
if ( did_action( 'application_password_did_authenticate' ) ) {
return true;
}
return $enable;
} );

Um das Theme nicht anpassen zu müssen, wird der Code als Snippet im Plugin „Code Snippets“ verwendet.

Kontaktformular

Das Kontaktformular wird von „Contact Form 7“ bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Empfänger-E-Mail ist der Vereinsvorstand angegeben.

Vorlage für Formular

Das Kontaktformular entspricht im Wesentlichen der Standardeinstellung, es wurde jedoch ein Frage-Feld ergänzt, welches vor dem Absenden beantwortet werden muss, um den ein oder anderen Spam-Bot abzuhalten. Groß-/Kleinschreibung ist für die Antworten nicht relevant.

<label>Dein Name
[text* your-name] </label>
<label>Deine E-Mail-Adresse
[email* your-email] </label>
<label>Betreff
[text* your-subject] </label>
<label>Deine Nachricht (optional)
[textarea your-message] </label>
[quiz quiz-515 "In welcher Stadt befindet sich unser Verein?|xxx" "Wie heißt die Bundeshauptstadt von Deutschland?|Berlin" "Was fördert unser Verein?|xxx"]
[submit "Senden"]

Honeypot gegen Spam

Sollte die Sicherheitsfrage zur Abwehr von Spammern nicht ausreichen, kann ggf. noch zusätzlich/alternativ das Plugin Contact Form 7 Honeypot getestet werden. Aktuell ist es nicht installiert.

Übersichtsseite aller Artikel

Das Archiv wird von „Simple Yearly Archive“ bereitgestellt. Die Einstellungen sind überwiegend auf Standard belassen, als Datumsformat ist „d.m.“ eingestellt.

Cache Enabler

Zwischengespeicherte Seiten mit gzip vorkomprimieren. aktiviert

Alle anderen Einstellungen sind deaktiviert bzw. leer.

Subscribe to Comments Reloaded

StCR Checkbox… Ja

Sicher deinstallieren Ja

Anfragen automatisch löschen 30 Tage

Datumsformat d M Y

StCR Position Nein

Double Opt-In aktivieren Ja

Autoren abonnieren Nein

Aktiviere HTML E-Mails Nein

Trackbacks senden Nein

Verfolge alle Benachrichtigungen Nein

Admin-Abonnement erlauben Nein

BCC Admin bei Benachrichtigungen Nein

„Font Awesome“ aktivieren Nein

Nur für Blog-Beiträge aktivieren Ja

Nur für angemeldete Benutzer aktivieren Nein

Cookies aktivieren Ja

Challenge-Frage aktivieren Nein

Challenge-Frage egal

Challenge-Frage egal

Eindeutiger StCR Schlüssel automatisch erzeugt

XML-Sitemap

Die Sitemap wird vom Plugin „XML Sitemap & Google News“ erzeugt. In den Einstellungen unter „Post Types“ ist „Split by“ auf „keine“ eingestellt, Rest ist Standard.

In den Wordpress-Einstellungen für „Schreiben“ ist zu prüfen, dass die Ping-Services für Google und Bing/Yahoo aktiviert sind, damit beim Veröffentlichen von Beiträgen die geänderte Sitemap an die Suchmaschinen gemeldet wird für die Indexierung.

Raumstatus

Für die Darstellung des Raumstatus in der Seitenleiste wird das Plugin „Advanced Text Widget“ benötigt, da Wordpress standardmäßig keinen PHP-Code ausführt.

Der Code für den Status sieht wie folgt aus. Die Größe der Logos lässt sich durch Änderung der Variable $cssMaxWidth anpassen.

<?php // Spaces $spaces = [ 'Bytespeicher' => 'http://status.bytespeicher.org', 'Makerspace' => 'http://status.makerspace-erfurt.de', ]; // Max width of icon (small = 100, large = 200) $cssMaxWidth = 100; // JSON path for URI $statusJsonPath = '/status-minimal.json'; // Create stream context with low timeout $context = stream_context_create([ 'http' => [ 'method' => "GET", 'timeout' => 1 ] ]); // Check every space // No output on errors foreach ($spaces as $spaceName => $statusUrl) { // Get minimal status from spacestatus webpage $jsonContent = file_get_contents($statusUrl . $statusJsonPath, false, $context); if ($jsonContent === false) { // Status could not be received, skip it continue; } // Decode JSON with max depth of 2 $jsonContent = json_decode($jsonContent, false, 2); if (is_null($jsonContent) || !isset($jsonContent->open) || !isset($jsonContent->icon)) { // JSON could not be decoded or entries missing continue; } // Output spaces $text = 'Der ' . $spaceName . ' ist ' . ($jsonContent->open === true ? 'offen' : 'geschlossen') . '!'; echo '<a href=\'' . $statusUrl . '\'>'; echo '<img src=\'' . $jsonContent->icon . '\' title=\'' . $text . '\' alt=\'Raumstatus des ' . $spaceName . '\' style=\'width:100%;max-width:' . $cssMaxWidth . 'px;\' />'; echo '</a>'; } ?>

Jetpack (nicht mehr installiert)

Wir verwenden nur die kostenlose Variante von Jetpack, daher sind nicht alle Funktionen nutzbar.

Sicherheit

Überwachung von Ausfallzeiten deaktiviert

Anti-Spam aktiviert

Schutz vor Brute-Force deaktiviert (vernünftiges Passwort und 2FA reichen)

WordPress.com-Anmeldung deaktiviert

Performance

Performance und Geschwindigkeit (alles deaktiviert da für Betrieb nicht zwingend nötig)

Website-Beschleuniger deaktiviert

Ladezeiten von Bildern verkürzen deaktiviert

Ladezeiten von statischen Dateien verkürzen deaktiviert

Schreiben

Mediathek

Präsentiere Bilder in einer Vollbild-Karussell-Galerie deaktiviert

Erstellen

Aktiviere die Option zum Kopieren ganzer Beiträge… deaktiviert

Schreibe Beiträge oder Seiten in Markdown-Syntax. deaktiviert

Benutze die Markup-Sprache LaTeX deaktiviert

Verwende Shortcodes, um Medien von beliebten Websites einzubetten deaktiviert

Individuelle Inhaltstypen alles deaktiviert

Theme-Erweiterungen

Unendlich Scrollen Mehr Beiträge mit dem Standard-Theme-Verhalten laden

CSS-Anpassungsbereich optimieren deaktiviert

Widgets

Stelle zusätzliche Widgets wie Abonnementformulare und Twitter-Streams auf deiner Website zur Verfügung deaktiviert

Aktiviere Steuerelemente zur Sichtbarkeit von Widgets… deaktiviert

Per E-Mail veröffentlichen deaktiviert

WordPress.com-Werkzeugleiste deaktiviert

Teilen

Publicize-Verbindungen deaktiviert (muss noch aktiviert und verknüpft werden)

Teilen-Buttons deaktiviert (haben „richtige“ Betriebssysteme integriert)

Gefällt mir-Buttons deaktiviert

Diskussion

Kommentare alles deaktiviert

Abonnements alles deaktiviert

Traffic

Ähnliche Beiträge alles deaktiviert

WP.me-Kurzlinks deaktiviert

Sitemaps deaktiviert

Website-Verifizierung deaktiviert

Module ohne eigene Konfigurationsseite

Mehrere Jetpack-Module können in der normalen Konfigurationsoberfläche nicht deaktiviert werden, sondern nur über die Modulübersicht zu finden. Der Direkt-Link lautet https://technikkultur-erfurt.de/wp-admin/admin.php?page=jetpack_modules.

Benachrichtigungen deaktiviert

Kontaktformular deaktiviert

Statistiken deaktiviert

erweiterte Verbreitung deaktiviert

JSON-API deaktiviert