Archiv der Kategorie: Webentwicklung

WordPress: Emojis loswerden

Als ich kürzlich in den WordPress-Quelltext einer Kunden-Website schaute, wunderte ich mich über den aufgeblähten Kopfbereich der untersuchten HTML-Datei. Da war ein JavaScript-Code, den ich nicht kannte und der ursprünglich nicht dort gewesen war, und zusätzlich gab es noch ein paar CSS-Angaben. Der Begriff wpemojiSettings fiel mir auf, und ich forschte erst mal nach, was ein Emoji ist. Nun, es ist ein Ideogramm, ähnlich wie ein Smiley oder Emoticon – der Begriff Emoji ist aber weiter gefasst und nicht auf Emotionen beschränkt.

Da ich den Quellcode gern schlank halte, aus Geschwindigkeitsgründen auf alles Überflüssige verzichten möchte und nicht zuletzt der Meinung bin, dass man im geschäftlichen Bereich ganz gut ohne alberne Bildschriftzeichen auskommen kann, stand die zweiteilige große Frage im Raum: »Wie ist der Mist da hinein gekommen und wie werde ich ihn wieder los?«

Die Antwort fand ich auf ehtio.de: Die Emojis kamen mit dem WordPress-Update 4.2, und loswerden kann man sie durch ein wenig Code in der Datei functions.php. Danke an Tim Ehling für seinen Blogartikel und die elegante Lösung!

Markdown-Parser für PHP

PHP Markdown von Michel Fortin ist eine Bibliothek für Entwickler. Sie enthält einen PHP-Markdown-Parser, der auch mit Markdown Extra umzugehen weiß. Im Ursprung war das Programm eine Portierung des Markdown-Tools von John Gruber, und zwar von Perl nach PHP.

Die aktuelle Version (Stand: März 2015) setzt mindestens PHP 5.3 voraus. Ich habe diese Bibliothek bzw. diesen Parser ausprobiert und muss sagen: läuft! Sowohl auf dem Windows-PC als auch auf dem Linux-Webserver. Eine Installation ist nicht erforderlich, man entpackt einfach die ZIP-Datei. Die Verwendung ist einfach, ich bin auf Anhieb gut zurecht gekommen.

CSS-Klassen des WordPress-Menüs abspecken

Ich versuche immer, meine HTML- und CSS-Quellcodes schlank zu halten. Erstens, weil man dann bei späteren Bearbeitungen besser durchblickt, und zweitens, weil Suchmaschinen es lieben, wenn Webseiten so beschaffen sind, dass sie deutlich mehr echten Inhalt als Layout-Angaben beinhalten.

Zum Beispiel trägt das benutzerdefinierte Menü von WordPress zu viel Ballast mit sich. CSS-Klassen, die zwar im Quelltext aufgeführt sind, aber gar nicht benötigt werden, blähen Webseiten unnötig auf und sollten entfernt werden. Was kann man tun?

Wie so oft liegt die Lösung darin, Code in die Datei functions.php, die man im Theme-Ordner findet, einzufügen. Aber wie? Das erfährt man von Monika in ihrem Blog texto.de. Da es in deutscher Sprache ist, schlage ich vor, bei Interesse ihren sehr gut erklärten Artikel HTML output von wp_nav_menu verringern zu lesen.

WordPress: Fehlender Home-Link in Navigation

In aller Regel wird man, wenn man ein WordPress-Blog erstellt, keinen Link zur Startseite im Navigationsmenü vorfinden. Man kann aber einen dorthin bekommen.

In dieser Kurzanleitung fangen wir mal ganz bei Null an und basteln uns eine Navigation selbst. Falls sie in dieser Form schon im Theme vorhanden ist, können die Punkte 1 bis 3 übersprungen werden.

Davon ausgegangen, dass es sich sich um ein selbst gehostetes WordPress handelt (also nicht um ein bei WordPress.com eingerichtetes) und dass wir natürlich FTP-Zugriff zum Webserver haben, dann sind folgende Schritte zu unternehmen:

  1. Menü-Funktion hinzufügen

    Um ein benutzerdefiniertes Menü zu ermöglichen, das dann übers Dashboard konfiguriert werden kann, folgenden Code der Datei functions.php im Theme-Ordner hinzufügen:

    add_action( 'init', 'my_custom_menus' );
     
    function my_custom_menus() {
        register_nav_menus(
            array(
                'primary-menu' => __( 'Primary Menu' ),
                'secondary-menu' => __( 'Secondary Menu' )
            )
        );
    }

    In diesem Fall wollen wir zwei Navigationsmenüs haben, eine Hauptnavigation und eine untergeordnete.

  2. Template-Datei modifizieren

    Unser Theme müssen wir jetzt mit den Navigationsmenüs ausstatten; dafür fügen wir folgenden Code ein, im Fall des Hauptmenüs wohl am ehesten in die Template-Datei header.php:
    <?php wp_nav_menu( array( 'theme_location' => 'primary-menu', 'menu_class' => 'primary', 'fallback_cb' => '') ); ?>.
    Mit dem Submenü verfahren wir ähnlich. – In unsere CSS-Datei können wir jetzt die Klasse primary-menu einfügen, um das Navigationsmenü zu gestalten. Die Fallback-Möglichkeit ist für den Fall gedacht, dass es überhaupt kein Menü gibt (weil zum Beispiel gar keine Subnavigation benötigt wird), dann wird nichts angezeigt.

  3. Menü im Dashboard erstellen

    Im Admin-Dashboard der WordPress-Installation klickt man jetzt auf Design > Menüs, wo man jetzt den Menübaukasten sieht. Dort kann man seine Navigationsmenüs auf einfache Weise konfigurieren.

  4. Homepage-Link im Navigationsmenü anzeigen

    Dumm ist nur, dass die Homepage (die Startseite) dennoch nicht in unserer Navigationsleiste angezeigt wird bzw. nicht im Menübaukasten als Menüpunkt erscheint. Auch hier liegt die Lösung darin, dass man die Datei functions.php im Theme-Ordner um etwas Code erweitern muss:

    function home_page_menu_args( $args ) {
        $args['show_home'] = true;
        return $args;
    }
    add_filter( 'wp_page_menu_args', 'home_page_menu_args' );

    Sobald dieser Code eingefügt worden ist, sollte das dazu führen, dass »Home« als Option unter dem »Seiten«-Widget auf der Menü-Verwaltungs-Seite erscheint, sodass man jetzt per Klick entscheiden kann, ob die Startseiten in der Navigation angezeigt werden soll oder nicht.

Quellen:
Box Model Junkie
WPBeginner

Wie aktualisiert man concrete5?

Das Content-Management-System concrete5 kann man auf verschiedene Arten aktualisieren. Doch Achtung: ein Upgrade von Version 5.6.x auf 5.7.x ist nicht möglich, da für 5.7 concrete5 von Grund auf und mit einem anderen Framework als vorher neu entwickelt worden ist. In diesem Fall muss man also leider alle Inhalte von Hand übertragen.

Um innerhalb der Major-Version 5.7 von einer auf die andere Minor-Version zu aktualisieren, gibt es verschiedene Möglichkeiten. Die bequemste ist sicherlich, das Update aus dem Dashboard heraus automatisch ablaufen zu lassen. Andere Möglichkeiten sind mit ein bisschen Handarbeit verbunden. Wenn man zum Beispiel Platz auf dem Webserver sparen will, bietet es sich an, das Verzeichnis /concrete mit dem gleichnamigen Verzeichnis der neuen Version zu überschreiben.

Genaue Handlungsanweisungen kann man der Online-Dokumentation (in englischer Sprache) entnehmen.

AddQuicktag, ein nützliches WordPress-Plugin

Frank Bültge, den man wohl als eines der deutschsprachigen WordPress-Urgesteine bezeichnen darf, hat vor Jahren eine recht lange Liste von nützlichen WordPress-Plugins vorgestellt, die er entwickelt hat, an denen er in irgendeiner Weise mitgewirkt hat oder die er empfiehlt.

Einer meiner Lieblinge ist AddQuicktag. Denn mit den vorgegebenen Quicktags (also den Schaltflächen, mit denen man auf einfache Weise häufig benötigte HTML-Elemente in den Textbereich des Editors einfügen kann) war ich nie so ganz zufrieden. Es fängt ja schon damit an, dass die Buttons b und i die Elemente <strong> und <em> erzeugen. In HTML5 haben aber bold und strong bzw. italic und emphasis völlig unterschiedliche Bedeutungen (was an dieser Stelle nicht näher ausgeführt werden soll). Darüber hinaus fehlen zum Beispiel öfters benötigte Sonderzeichen. Und natürlich wäre es wünschenswert, immer wiederkehrende Code- oder Text-Schnippsel als Schaltflächen in die Menüleiste des Editors aufnehmen zu können.

Mit AddQuicktag ist das alles auf eine sehr leichte Weise zu bewerkstelligen. Dieses Plugin erleichtert mir wirklich die Arbeit und beschleunigt das Erstellen von Blogartikeln.

concrete5: Das z-index-Problem

In concrete5 hatte ich folgendes Problem: Ich hatte zwei Ebenen so übereinander gelegt, dass ein leicht transparenter Bereich einen anderen Bereich überlagerte; in der CSS-Datei hatte ich dem oben liegenden Bereich einen z-index-Wert gegeben; beide Bereiche wurden mit Blöcken (unten Slideshow-Block, oben HTML-Block) befüllt; doch im Dashboard von concrete5 ließ sich nun der Block in der oben liegenden Ebene nicht anklicken, also auch nicht bearbeiten.

Dies ist natürlich ein äußerst rätselhaftes Verhalten. Doch nach einiger Sucherei fand ich die Lösung (wie so oft) im concrete5-Forum. Und zwar darf man keinen z-index größer oder gleich 5 vergeben. Mit einer kleineren Zahl hingegen klappt es.

Das liegt daran (um es concrete5-Insidern zu erklären), dass dem CCM-Highlighter von Seiten der Programmierer der recht kleine Wert von 5 für den z-index gegeben worden ist. Man kann diesen Wert aber durch eine Angabe in der CSS-Datei des eingesetzten Themas (/themes/­[mytheme]/­main.css) überschreiben, wie ebenfalls im Forums-Thread zu lesen ist:
div#ccm-highlighter {z-index:100!important;}.

Das concrete5-Forum ist also wirklich eine Fundgrube für gute Tipps (wenn man der englischen Sprache mächtig ist). Danke schön an die vielen freundlichen Mitglieder für ihre bereitwilligen Hilfestellungen!

concrete5: Format der Seitentitel ändern

In der Standardeinstellung von concrete5 werden die Seitentitel in den Meta-Angaben so generiert, dass der eingegebene Name des Webauftritts und der eigentliche Titel durch einen doppelten Doppelpunkt, also ::, getrennt werden. Wenn man das als unschön empfindet, hat man die Möglichkeit, diese Punkte durch ein anderes Zeichen zu ersetzen. Wie das geht, wird in der concrete5-Dokumentation erklärt.

concrete5: Unable to get permission key for access_user_search_export

Nach dem Update einer concrete5-Installation bei einem Kunden erschien die Fehlermeldung: Unable to get permission key for access_user_search_export. Ob sich aufgrund dieses Fehlers eine Benutzerin nicht am System anmelden konnte oder ob das andere Gründe hatte, war leider im Nachhinein nicht nachvollziehbar. Jedenfalls fand ich die Lösung zur Behebung dieses Fehlers im concrete5-Forum. Es ist ein kleiner Eingriff in die Datenbank nötig.

Den Editor in WordPress erweitern

Die Werkzeugleiste des Editors in WordPress ist ja nicht unbedingt nach jedermanns Geschmack. Einige Schaltflächen mag man als überflüssig empfinden; andere oft benötigte HTML-Elemente werden gar nicht als Button angeboten. Glücklicherweise gibt es Hilfe in Form von Plugins, mit denen man diese Toolbar anpassen oder auch völlig ummodeln kann. Das leistungsfähigste Plugin, das ich finden konnte, ist AddQuicktag von Frank Bültge. Denn hiermit lassen sich nicht nur neue Elemente hinzufügen und sortieren, sondern sogar die standardmäßig vorgegebenen entfernen. Und das alles über eine sehr einfach zu bedienende Oberfläche.