Wordpress-Anpassungen für bytespeicher.org

Unsere Seite auf bytespeicher.org wird derzeit mit Wordpress verwaltet. Abhängig von den gefundenen Bugs, neuen Releases und unserer Aktualisieren sollte immer eine einigermaßen aktuelle Version laufen. ;)

Als Template kommt Twenty Fourteen zum Einsatz, wobei wir einige Änderungen gemacht haben, die nachfolgend dokumentiert sind.

Für eine Diskussion/Ideensammlung gibt es natürlich auch ein Pad

Raumstatus in der Seitenleiste

Der Raumstatus wird in der Seitenleiste mittels Enhanced Text Widget eingebunden. Dies muss über die Plugin-Installation nachinstalliert werden und beherrscht gegenüber dem normalen Text-Widget die Möglichkeit, auch PHP auszuführen.

Die Einbindung des Status erfolgt dann einfach mittels HTML- und PHP-Code…

<?php
$ctx = stream_context_create(array(
'http' => array(
'timeout' => 1
)
)
);
$obj = json_decode(file_get_contents('http://status.bytespeicher.org/status.json', false, $ctx));
if (isset($obj->state->open) && $obj->state->open === true) {
$f = $obj->state->icon->open;
$text = "Der Raum ist offen!";
} else {
$f = $obj->state->icon->closed;
$text = "Der Raum ist geschlossen!";
}
$f = str_replace('http://status.bytespeicher.org/', 'https://bytespeicher.org/status/', $f);
echo "<a target='_blank' href='http://status.bytespeicher.org/'><img src='$f' title='$text' alt='Raumstatus' /></a>";
echo '<p style="text-align:center">'."$text</p>";
?>

Anpassungen an Funktionen

Hinweis zu Beitragsbild

Da unsere Autoren gerne mal das Beitragsbild beim Veröffentlichen von Artikel vergessen, haben wir das Plugin Featured Image Reminder eingebaut. Hat man kein Bild gesetzt und will den Beitrag veröffentlichen, erscheint ein Warnhinweis, den man nochmals bestätigen muss.

Subscribe To Category

Für Testzwecke (und ggf. später mehr) haben wir das Plugin Subscribe to Category eingerichtet. Anpassungen dazu können in der Datei *functions.php* des Designs gemacht werden.

/*
* Mit den nachfolgenden Filtern wird die E-Mail des Plugins Subscribe To Category angepasst.
*/
// Beitragsbild in die E-Mail einfügen
function my_stc_after_message_title( $post_id ){
echo get_the_post_thumbnail( $post_id, 'medium' );
}
add_action( 'stc_after_message_title', 'my_stc_after_message_title', 10, 2 );
// Beiträge als full-post schicken
function my_stc_message_length_sum_of_words( $length ) {
$length = -1;
return $length;
}
add_filter( 'stc_message_length_sum_of_words', 'my_stc_message_length_sum_of_words', 10, 1 );
// unsubscribe-Link entfernen
function my_stc_message_unsubscribe_html( $message ) {
$message = '';
return $message;
}
add_filter( 'stc_message_unsubscribe_html', 'my_stc_message_unsubscribe_html', 10, 3 );

Anpassungen am Design

großes Header-Bild

In den Template-Optionen wurde das große Header-Bild deaktiviert, um die Übersichtsseite zu entschlacken und mehr Inhalt auf die Seite zu bringen. Diese Modifikation ist update-sicher und muss daher nicht jedes mal gemacht werden.

keine Artikelbilder auf Übersichtsseite

Um die Startseite etwas übersichtlicher zu halten, werden keine Artikelbilder angezeigt. Dazu muss man in der Datei content.php die Zeile twentyfourteen_post_thumbnail(); anpassen

if ( is_single() ) :
twentyfourteen_post_thumbnail();
endif;

Diese Änderung ist nicht update-sicher und muss nach einer Aktualisierung erneut eingetragen werden.

Beitragsüberschriften nicht UPPERCASE

Überschriften der Beiträge werden nicht mehr in UPPERCASE ausgewiesen. Dazu muss man in der Datei style.css in Abschnitt 6.2 bei Klasse .entry-title das uppercase aaskommentiert werden (ca. Zeile 1110).

/* text-transform: uppercase; */

Beitragsarchiv ohne Aufzählungszeichen

Wir verwenden für die Archivseite des Weblogs das Plugin „Simple Yearly Archive“. Dieses erzeugt allerdings in der Standardeinstellung eine Aufzählung der Beiträge, wodurch die Darstellung unschön wird. In der Template-Datei style.css muss am Ende daher noch der folgende Code eingefügt werden.

.sya_container li {
list-style-type:none;
}

statischen Content erzeugen

Der nachfolgende Teil ist „work in progress“ und noch nicht die letztgültige Variante, wie die Seite zu archivieren ist.

Damit im statischen Archiv bei jedem Artikel ein Hinweistext dabei ist, muss in der Datei functions.php des Themes am Ende folgender Inhalt ergänzt werden:

add_filter( 'the_content', 'filter_the_content_in_the_main_loop' );
function filter_the_content_in_the_main_loop( $content ) {
// Prüfen ob wir in dem Loop eines Beitrags oder einer Seite sind
if (( is_single() OR is_page()) && in_the_loop() && is_main_query() ) {
// Den HTML Teil für die Schrift könnt ihr beliebig ändern oder erweitern
return '<p style="font-weight:bold;background-color:yellow;padding:1em;border:1px solid black;">Du befindest dich im Archiv dieses Weblogs. Für aktuelle Informationen besuche uns bitte auf <a href="https://technikkultur-erfurt.de">technikkultur-erfurt.de</a></p>' . $content;
}
return $content;
}

Um die Seite als Archiv zu verwenden, soll sie als statischer HTML-Code erhalten bleiben. Dies hat den Vorteil, dass im Hintergrund kein Wordpress mehr läuft und somit auch keine Plugins, Sicherheitsupdates etc. benötigt werden. Zu Testzwecken wurde das Programm httrack verwendet. Es ist für die gängigen Betriebssysteme verfügbar, am Mac nutzt man am einfachsten die Version aus brew.

Das Archiv legt man mit folgendem Befehl an

httrack https://bytespeicher.org -W -O "/Users/bernd/static/bytespeicher" -*.php -%v -%k
-W mirror web sites, semi-automatic (asks questions) (--mirror-wizard)
-O path for mirror/logfiles+cache
-%v display on screen filenames downloaded (in realtime) - * %v1 short version - %v2 full animation (--display)
-%k use keep-alive if possible, greately reducing latency for small files and test requests

Für ein Update des Mirrors muss man im Ordner den folgenden Befehl verwenden:

httrack --update

Die verwendeten Parameter werden in ./ht-cache/doit.log gespeichert.

To update a mirror, just launch httrack without any parameters
The existing cache will be used (and modified)
To have other options, retype all parameters and launch HTTrack
To continue an interrupted mirror, just launch httrack without any parameters