Kategorie „WordPress“

Gesammelte Beiträge zum Thema WordPress

WordPress in der Version 5.1.1 ist jetzt verfügbar.

Das Wartungsrelease beinhaltet zwei Sicherheits-Fixes sowie diverse Verbesserungen.

Eine vollständige List der Änderungen kann hier eingesehen werden.

WordPress 5.1

Kürzlich wurde WordPress 5.1 „Betty“ veröffentlicht, benannt nach der Jazz-Sängerin Betty Carter. Nachdem in WordPress 5.0 der neue Block-Editor eingeführt wurde, konzentriert sich 5.1 auf den Feinschliff, insbesondere auf Performance-Verbesserungen des Editors.

Code Snippets

Die folgenden Code Schnipsel kopiert ihr bitte einfach in die functions.php eures aktiven WordPress Themes.

WooCommerce Javascript und CSS nur auf Shop Seiten laden

Da WooCommerce seine CSS und JavaScript Dateien auf jeder Seite eurer Homepage lädt, kann es zu erheblichen Performance-Einbußen kommen. Das folgende Snippet sorgt dafür, dass diese Dateien nur auf den tatsächlichen Shop Seiten integriert werden:

if (!function_exists( 'trd_remove_woocommerce_styles' ) ) :
 
function trd_remove_woocommerce_styles() {
 
    if ( function_exists( 'is_woocommerce' ) ) {
 
        if ( ! is_woocommerce() && ! is_cart() && ! is_checkout() && ! is_account_page() ) {          
            wp_dequeue_style( 'woocommerce-layout' );
            wp_dequeue_style( 'woocommerce-smallscreen' );
            wp_dequeue_style( 'woocommerce-general' );
            wp_dequeue_style( 'evolution-woostyles' );
            wp_dequeue_script( 'wc_price_slider' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-add-to-cart' );
            wp_dequeue_script( 'wc-cart-fragments' );
            wp_dequeue_script( 'wc-checkout' );
            wp_dequeue_script( 'wc-add-to-cart-variation' );
            wp_dequeue_script( 'wc-single-product' );
            wp_dequeue_script( 'wc-cart' );
            wp_dequeue_script( 'wc-chosen' );
            wp_dequeue_script( 'woocommerce' );
            wp_dequeue_script( 'prettyPhoto' );
            wp_dequeue_script( 'prettyPhoto-init' );
            wp_dequeue_script( 'jquery-blockui' );
            wp_dequeue_script( 'jquery-placeholder' );
            wp_dequeue_script( 'fancybox' );
            wp_dequeue_script( 'jqueryui' );
        }
    }
}
add_action( 'wp_enqueue_scripts', 'trd_remove_woocommerce_styles', 99 );
endif;

In den Warenkorb Button direkt zur Kasse leiten

Mit diesem Snippet könnt ihr Nutzer beim Klick auf den Warenkorb Button direkt zur Kasse zu leiten.

add_filter ('add_to_cart_redirect', 'trd_redirect_to_checkout');
 
function trd_redirect_to_checkout() {
    global $woocommerce;
    $checkout_url = $woocommerce->cart->get_checkout_url();
    return $checkout_url;
}

Freiwillige Angabe der Telefonnummer

Im Bestellvorgang ist die Telefonnummer als Pflichtfeld gekennzeichnet. Um daraus eine freiwillige Angabe zu machen, kann folgender Code genutzt werden:

if (!function_exists( 'trd_woocommerce_phone_optional' ) ) :
function trd_woocommerce_phone_optional( $address_fields ) {
 
    $address_fields['billing_phone']['required'] = false;
    return $address_fields;
}
add_filter( 'woocommerce_billing_fields', 'trd_woocommerce_phone_optional', 10, 1 );
endif;

Bemerkungsfeld im Bestellvorgang entfernen

Erfahrungsgemäß wird das Bemerkungsfeld im WooCommerce Bestellvorgang von den meisten Kunden nicht genutzt. Um Platz im Bestellformular einzusparen, ist es daher eine Überlegung wert, das Feld entsprechend zu deaktivieren.

add_filter( 'woocommerce_enable_order_notes_field', '__return_false' );

Ähnliche Produkte ausblenden

Es sprechen einige Gründe dafür, bei Shops mit kleinem Warenangebot „ähnliche Produkte“ auszublenden, da hier die Auswahl scheinbar zufällig zustande kommt.

remove_action( 'woocommerce_after_single_product_summary', 'woocommerce_output_related_products', 20 );

Bei Fragen helfen wir euch natürlich gerne weiter.

Aus Sicherheitsgründen ist dieser Dateityp nicht erlaubt

Falls ihr bei dem Versuch, bestimmte Dateitypen in die Mediathek hochzuladen die Fehlermeldung „Aus Sicherheitsgründen ist dieser Dateityp nicht erlaubt“ erhaltet, liegt das an den Sicherheitseinstellungen von WordPress. Diese lassen, abhängig von der WordPress Version, nur bestimmte Dateitypen zu.

Upload sämtlicher Dateitypen erlauben

Um den Sicherheitsmechanismus komplett zu umgehen, ruft bitte mittels Texteditor die Datei wp-config.php im Hauptverzeichnis der betreffenden WordPress Installation auf.

Hier fügt ihr vor der Zeile

1
/* That's all, stop editing! Happy publishing. */

folgende Definition hinzu:

1
define('ALLOW_UNFILTERED_UPLOADS', true);

Jetzt ist ein Upload sämtlicher Dateitypen über die WordPress Mediathek möglich.

Bei Fragen helfen wir euch natürlich gerne weiter.

WordPress Admin Passwort funktioniert nicht mehr

Falls ihr euer WordPress Admin Passwort vergessen haben solltet und auch die Wiederherstellung über die Passwort vergessen Funktion keinen Erfolg bringt, lässt sich das Passwort nur noch über die Datenbank zurücksetzen.

Grundsätzlich erfolgt der Zugriff auf die Datenbank über das MySQL Administrationswerkzeug phpMyAdmin.

Je nach Anbieter findet ihr den phpMyAdmin im Kundenbereich eures Webhosters häufig unter „Datenbanken verwalten“, „MySql-Datenbanken“ o.ä. Im Zweifelsfall kann der Hoster sicherlich weiterhelfen.

Achtung! Ihr solltet unbedingt ein Backup anlegen, bevor Änderungen in der Datenbank vorgenommen werden.

Die korrekte Datenbank zur WordPress Admin Passwort Änderung finden

Die von WordPress verwendete Datenbank findet ihr in der Datei wp-config.php im Hauptverzeichnis der WordPress Installation. Öffnet die Datei mit einem Texteditor und sucht nach einem Eintrag ähnlich diesem:

1
define( 'DB_NAME', 'db123456_XX' );

Der letzte Wert, hier exemplarisch db123456_XX (sieht bei euch anders aus!),  ist der Name der WordPress Datenbank.

Ändern des WordPress Admin Passworts mit phpMyAdmin

Ruft den phpMyAdmin auf und selektiert oben links die Datenbank, die in der wp-config.php hinterlegt ist. In unserem Beispiel wäre das die Datenbank db123456_XX.

Anschließend klickt ihr in der linken Sidebar die Tabelle wp_users an. Das Präfix wp_  kann auch umbenannt worden sein in eine beliebige andere Zeichenkette.

Jetzt solltet ihr oben auf „Anzeigen“ und anschließend auf das Stiftsymbol neben dem Admin User Eintrag klicken.

Im nächsten Schritt kann der Wert im Feld user_pass gelöscht und durch ein neues Passwort ersetzt werden.

Da der Wert im Passwort Feld allerdings md5 verschlüsselt hinterlegt wird, könnt ihr nicht einfach euer Wunschpasswort eintragen. Stattdessen nutzt zunächst bitte den md5 Hash Generator von Miracle Salad. Tragt hier unter String das neue gewünschte Passwort ein und klickt anschließend auf md5. Als Resultat erhaltet ihr den verschlüsselten md5 Hash. Diesen kopiert ihr nun und tragt ihn in das Datenbank Feld user_pass als Wert ein.

Über den „OK“ Button speichert ihr die Änderungen anschließend.

Falls alles geklappt hat, könnt ihr euch mit dem festgelegten Wunschpasswort einloggen.

Wir hoffen, dass euch der Artikels weiterhelfen konnte. Bei weiteren Fragen helfen wir euch natürlich gerne weiter.

Wartungsseite nach Updates

Während der Installation von WordPress, Theme und Plugin Updates wird eure Seite für kurze Zeit in den WordPress Wartungsmodus versetzt. Beim Aufruf der Seite wird dann in diesem Fall lediglich die Meldung „Wegen geplanter Wartungsarbeiten kurzzeitig nicht verfügbar“ angezeigt.

Normalerweise wird eure Seite nach Fertigstellung der Updates automatisch wieder freigeschaltet. Es kommt allerdings in seltenen Fällen vor, dass Updates aus verschiedenen Gründen nicht abgeschlossen werden können und der Auftritt im Wartungsmodus hängen bleibt.

WordPress .maintenance

Um das Problem lösen zu können, benötigt ihr lediglich einen FTP Zugang zum Hauptverzeichnis eurer WordPress Installation.

Hier löscht ihr einfach die Datei „.maintenance“, wodurch der Wartungsmodus wieder abgeschaltet wird.

Wir hoffen, dass ihr mit Hilfe des Artikels eure Seite schnell wieder zum Laufen gebracht habt. Bei weiteren Fragen helfen wir euch natürlich gerne weiter.

Wenn beim Aufruf eures WordPress Auftritts nur noch eine weiße Seite angezeigt wird und auch der Admin Bereich nicht mehr aufrufbar ist, spricht man vom berühmten WordPress „White Screen of Death“.  Dieser ist das Ergebnis eine fatalen PHP Fehlers, der euren Auftritt zum Abstürzen gebracht hat. Häufig tritt dieses Phänomen unmittelbar nach Änderungen an WordPress, dem aktiven Theme oder Plugins auf.

Um das Problem lösen zu können, wird zwingend FTP Zugang zum Auftritt benötigt. Falls ihr nicht wißt, wie dieser eingerichtet wird, hilft euer Webhoster sicherlich gerne weiter.

WordPress Debug Modus

Zunächst sollte der Fehler eingegrenzt werden, indem der WordPress Debug Modus eingeschaltet wird. Der Debug Modus erlaubt das Anzeigen von Fehlermeldungen, die wiederum Aufschluss darüber geben, in welchem Programmteil sich der Fehler verbirgt.

Ruft hierzu die Datei wp-config.php im Hauptverzeichnis der WordPress Installation auf dem FTP-Server mit einem beliebigen Textprogramm auf (Word ist kein Textprogramm!). Sucht jetzt nach der Zeile

define(‚WP_DEBUG‘, false);

und ändert diese zu

define(‚WP_DEBUG‘, true);

Speichert die Datei auf eurem Server und ruft eure Seite im Browser erneut auf. Höchstwahrscheinlich wird jetzt eine Fehlermeldung angezeigt.

Häufige Fehlermeldungen und ihre Bedeutung

Allowed memory size exhausted: Weist darauf hin, dass das PHP Memory Limit ausgeschöpft ist. In diesem Fall solltet ihr euren Webhoster bitten, den Wert heraufzusetzen. Häufig reichen 256M aus.

Call to undefined function: Hier handelt es sich um einen Programmierfehler im Theme oder Plugin. Die Pfadangabe zeigt an, um welches Theme oder Plugin es sich handelt, z.B. ../wp-content/plugins/pluginxyz oder ../wp-content/themes/themexyz. Durch das Umbenennen des entsprechenden Ordners lassen sich Themes und Plugins deaktivieren, so dass eure Seite wieder aufrufbar sein sollte.

Cannot modify header information – headers already sent: Auch hier liegt mit hoher Wahrscheinlichkeit der Fehler im Plugin/Theme, häufig verursacht durch Leerzeichen am Anfang oder Ende einer Datei, vor. Wie oben beschrieben hilft auch hier das Umbenennen der entsprechenden Ordner.

Maximum execution time exhausted: Ein durch Plugins oder Themes angestoßenes Script erhält nicht genügend Zeit, um ausgeführt zu werden. Bittet euren Webhoster, die max_execution_time heraufzusetzen.

Im Debug Modus wird keine Fehlermeldung ausgegeben

Falls der Debug Modus wider Erwarten keine Fehlermeldung anzeigt, solltet ihr versuchen, den Fehler selber einzugrenzen. Hierzu benennt zunächst den plugins Ordner (../wp-content/plugins) um in plugins_old. Loggt euch daraufhin im WordPress Admin Bereich ein, sämtliche Plugins sollten jetzt deaktiviert sein. Anschließend könnt ihr den Ordner wieder umbenennen zu plugins.

Aktiviert jetzt im Admin Bereich jedes Plugin eines nach dem anderen, bis der Fehler wieder auftritt. Auf diese Weise erfahrt ihr, wer der Verursacher des Problems ist.

Nach der Behebung des Problems solltet ihr in der wp-config.php Datei

define(‚WP_DEBUG‘, true);

wieder ändern zu

define(‚WP_DEBUG‘, false);

Wir hoffen, dass ihr mit Hilfe des Artikels eure Seite schnell wieder zum Laufen gebracht habt. Bei weiteren Fragen helfen wir euch natürlich gerne weiter.

Falls Ihr Probleme mit dem Upload von Bildern in die WordPress Mediathek haben solltet, empfehlen wir folgende Checkliste zu beachten:

  1. Ihr nutzt ein falsches Bildformat
    Achtet beim Hochladen von Bilddateien darauf, dass es sich um die gängigen Webformate  .jpg, .gif oder .png handelt. Andere Formate wie z.B. .psd, .esp, .tif oder .bmp funktionieren nicht. Häufig ist dieser Fehler daran zu erkennen, dass der Browser die Bilder schlichtweg nicht darstellt und/oder keine Thumbnails in der Mediathek generiert werden können.Lösung: Bilder durch sinnvolles Konvertieren in ein web-taugliches Format bringen.
  2. Der Speicherplatz des Webpaketes eures Hosters ist voll
    Auch ein vermeintlich so offensichtlicher Fehler kommt in der Praxis nicht selten vor. Typischerweise bricht der Upload hier ohne Fehlermeldung einfach ab.Lösung: Falls möglich Speicherplatz durch das Löschen ungenutzter Dateien in der Mediathek schaffen oder das Hostingpaket erweitern.
  3. Es befinden sich Sonderzeichen im Dateinamen
    Nicht alle Browser interpretieren Sonderzeichen, Leerzeichen und Umlaute gleich. Insbesondere Safari und Chrome scheinen hier erfahrungsgemäß weniger tolerant zu sein als FireFox. Ein sehr typisches Symptom für diesen Fehler ist, dass die Bilder nicht in allen Browsern angezeigt werden, obwohl diese auf dem Server liegen.Lösung: Dateinamen sollten weder Sonderzeichen (+,!,# etc), Leerzeichen noch Umlaute (ä, ö, ü, ß) verwenden.
  4. Die Rechte des wp-content/uploads Ordner stimmen nicht
    Ein Fehler der auftreten kann, wenn eine WordPress Installation manuell durchgeführt wird, sprich, es wurden die WordPress Installations Dateien via FTP auf den Server geschoben.
    Zu erkennen ist dieser Fehler daran, dass entweder die Fehlermeldung „Die hochgeladene Datei konnte nicht nach „wp-contents/uploads“ verschoben werden.“ ausgegeben wird oder die Thumbnails in der Mediathek ein „broken“ Symbol zeigen. Daran Schuld sind unzureichende Schreibrechte des Upload Ordners.Lösung: Ihr solltet euch in diesem Fall via FTP auf eurem Server einloggen und im WordPress Root zu wp-contents/ navigieren. Dort selektiert ihr den Order „uploads“ und gebt ihm via chmod die Rechte „755“ mit. In vielen FTP Clients lassen sich die Rechte durch rechts Klick -> Informationen/Rechte o.ä neu setzen. Dateien im Ordner sollten auf „644“ gesetzt sein.
  5. Das PHP Memory Limit ist zu gering
    Wenn ein Plugin oder der auch der Upload in die Mediathek den Dienst mit der Fehlermeldung  Fatal error: Allowed memory size of xxxxxx bytes exhausted quittiert, ist daran ein nicht ausreichend zugeteilter Arbeitsspeicher schuld. Insbesondere kleine shared Webhosting Pakete stellen standardmäßig nicht den kompletten Speicher zu Verfügung.Lösung: Falls ihr Zugriff auf die php.ini des Servers habt, könnt ihr hier nach „memory_limit“ suchen und den Wert erhöhen. Wir empfehlen mindestens 128M, besser 256M zu verwenden. Sollte euer Hoster keinen Zugriff auf diese Datei gewähren, lässt sich der Wert auch in der wp-config.php ändern. Hier solltet ihr direkt nach dem öffnenden PHP tag <?php

    define('WP_MEMORY_LIMIT', '128M');

    eintragen.

  6. Die PHP Version ist zu niedrig
    Sollte euer Hoster PHP in einer Version kleiner als 5.3 bereitstellen, kann es sein,  dass in der Mediathek keine Bilder angezeigt werden.Lösung: Bittet euren Hoster darum, die PHP Version auf Version 7.X zu erhöhen.

Bei Fragen helfen wir euch natürlich gerne weiter.

Beim Hotlinking verwendet ein Nutzer die exakte URL zu einem Bild auf eurem Server, um dieses direkt auf der eigenen Seite, in einem Forum oder an anderer Stelle einzubinden. Leider wird das Bild bei jedem neuen Aufruf von eurem Server geladen, was abhängig von der Besucherzahl zu hohem Traffic führen kann.

Im Klartext bedeutet das nichts anderes, als das der Server gestresst wird und euch u.U. beim Erreichen des Trafficlimits sogar Kosten durch den Hoster entstehen.

Eine einfache Lösung Hotlinking zu unterbinden lässt sich über mod_rewrite in eurer htaccess Datei realisieren.

Optional könnt ihr auch ein alternatives Bild anzeigen, welches auf das Problem aufmerksam macht.

Hierzu kopiert ihr einfach folgenden Code in htaccess Datei und ersetzt die URL tradino-shop.de durch eure eigenen.

1
2
3
4
5
6
7
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?tradino-shop\.de(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www\.google\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www\.bing\..*$ [NC]
RewriteCond %{REQUEST_URI} !^.*alternatives-bild\.png$ [NC]
RewriteRule \.(gif|jpg|GIF|JPG|png|PNG)$ https://tradino-shop.de/alternatives-bild.png [R,L]

Erläuterung der htaccess-Datei
Nach Aktivierung der Apache ReWrite-Engine, die für sämtliche Umleitungen von Anfragen zuständig ist, wird zunächst in Zeile 2 geprüft, ob es überhaupt einen Referrer gibt.

Ab Zeile 4 werden folgenden Konditionen abgefragt:

  • ist es nicht meine eigene Seite (hier exemplarisch tradino-shop.de), die das Bild anzeigen möchte
  • sind es nicht Google oder Bing, die das Bild in der Bildersuche anzeigen möchten
  • ist es nicht mein alternatives Bild

Treffen alle Konditionen zu, greift die RewriteRule in Zeile 7 und es wird das Bild „alternatives-bild.png“ unter der angegebenen URL (hier https://tradino-shop.de/alternatives-bild.png) ausgegeben.

Neben Google und Bing weitere Dienste erlauben
Sollen neben Google und Bing weitere Dienste zugelassen werden, könnt ihr die htaccess einfach um die entsprechenden Conditions erweitern.

Code Beispiel um auch Pinterest den Zugang zu gewähren:

1
2
3
4
5
6
7
8
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^https://(www\.)?tradino-shop\.de(/.*)?$ [NC]
RewriteCond %{HTTP_REFERER} !^https://pinterest\.com.*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www\.google\..*$ [NC]
RewriteCond %{HTTP_REFERER} !^https://www\.bing\..*$ [NC]
RewriteCond %{REQUEST_URI} !^.*alternatives-bild\.png$ [NC]
RewriteRule \.(gif|jpg|GIF|JPG|png|PNG)$ https://tradino-shop.de/alternatives-bild.png [R,L]

Bei Fragen helfen wir euch natürlich gerne weiter.

Neuer SMP – Shampoo & More Auftritt

Im neuen Glanz und für alle Endgeräte, wie Desktop, Tablet oder Smartphone optimiert, strahlt die neue Unternehmenswebsite der SMP – Shampoo & More GmbH.

Wir setzten auf Basis von WordPress die Programmiertechnik „Responsive Webdesign“ ein, um die Inhalte der Website auf sämtlichen Endgeräten optimal darstellen zu können.
Navigation und Layout der Inhalte unterscheiden sich so je nachdem, ob die Website am Desktop oder auf einem Smartphone betrachtet wird.

Um die Benutzer- und Suchmaschinenfreundlichkeit  (SEO) weiter zu steigern, kommen zusätzlich diverse Komprimierungs- und Caching Verfahren zu Einsatz.

Hier geht es zum Auftritt der SMP – Shampoo & More www.smp-hh.de