WordPress: Weiterleitungen nach Permalink-Änderung in .htaccess

Du möchtest in WordPress deine Permalinks umstellen? Dabei solltest du darauf achten, dass alle alten Links der Beiträge auch auf der neuen URL ankommen. Zusätzlich solltest du darauf achten, dass alle URLS auf HTTPS (über SSL) laufen (also erzwungen werden, damit keine zwei URLs im Suchmaschinen-Index verbleiben).

Mit diesem Code-Snippet in der .htaccess-Datei kannst du die URL nach folgendem Permalink-Schema perfekt umleiten (301-Weiterleitungen). Du hattest vorher eine andere URL, dann muss du die Regel (RewriteRule) der alten URL noch etwas anpassen. Ein Informatiker kann dir sicher helfen 😉

  • Alter Permalink: /%year%/%monthnum%/%postname%.html
  • Neuer Permalink: /%postname%/

  • Wichtig: Ausreichend testen nach der Umstellung und alle internen Links nicht vergessen anzupassen!

Besten Dank an Johannes für den Tipp!

WordPress: Hinzufügen von Shortcode-Button im TinyMCE

Sehr praktisch zum Arbeiten für Redakteure sind Button für eigene angelegte WordPress Shortcodes. Diese können im TinyMCE-Editor wie folgt ergänzt und mit Dashicons verschönert werden.

Der Shortcode für dieses Beispiel lautet:

Das PHP Snippet für die functions.php:

Das JavaScript Snippet für die dashboard.js (der Dateiname ist nur ein Beispiel) sollte auch nur im Dashboard geladen werden:

Quellen und Links

WordPress Dashicons: Icon-Set für das Dashboard

Dashicons ist die offizielle Icon-Schrift für das WordPress Dashboard seit Version 3.8 und bietet ein umfangreiches Icon-Set (Menüs, Medien, Pfeile, Social Media oder Produkte) zur freien Verwendung in Plugins, Widgets, Einstellungen oder für Button in dem TinyMCE.

WordPress Dashicons im Frontend

Die WordPress Dashicons können ebenso im Frontend verwendet werden. Dazu müssen diese für das Frontend mit dem Hook wp_enqueue_scripts() eingebunden werden.

Dieses Snippet kann in der functions.php verwendet werden.

Beispiele

Adding an icon to a header, with the dashicons-before class. This can be added right to the element with text.

Adding an icon to a header, with the dashicons class. Note that here, you need extra markup specifically for the icon.

Quellen und Links

WordPress Hock: Current Page Number in wp_link_pages()

Wie man die aktuelle Seitenzahl in der Funktion wp_link_pages() markiert. Diese WordPress-Funktion gibt ansonsten alle Seitenzahlen als Link und ohne Kennzeichnung der aktuellen Seite aus. Anschließend kann sie über die CSS-Klassse .current gesondert gestylt werden.

Dieses WordPress Snippet könnt ihr einfach in die functions.php des Themes einfügen. Getestet mit WordPress-Version 4.8.

Um die aktuelle Seitenzahl zu bestimmen, ist die Variable $page nötig, die ihr in die Funktion mit global einbinden müsst.

  • The $page global variable returns the current page of a multi-page post.
  • The $numpages global variable returns the total number of pages in a multi-page post.

Die Ausgabe der Funktion wp_link_pages() erfolgt in dieser Form:

Beispiel: Pages: 1 | 2 | 3 | 4

Möchte ihr zur nächsten oder vorherigen Seite verlinken verwendet ihr diese Funktion in dieser Form:

Beispiel: Vorherige Seite | Nächste Seite

Quellen und Links

WordPress Yoast SEO: Title & Meta Variablen

Hallo %%Leser%%, das wichtigste Hilfsmittel für gutes OnPage-SEO sind die Title- und Meta-Variablen des WordPress Plugins Yoast SEO. Wenn ihr sie nicht auswendig kennt, ist diese Variablen-Übersicht bei der Konfiguration der einzelnen Seiten, Beiträge und Archive sehr hilfreich!

Basic Variables

%%date%%Replaced with the date of the post/page
%%title%%Replaced with the title of the post/page
%%parent_title%%Replaced with the title of the parent page of the current page
%%sitename%%The site’s name
%%sitedesc%%The site’s tagline / description
%%excerpt%%Replaced with the post/page excerpt (or auto-generated if it does not exist)
%%excerpt_only%%Replaced with the post/page excerpt (without auto-generation)
%%tag%%Replaced with the current tag/tags
%%category%%Replaced with the post categories (comma separated)
%%category_description%%Replaced with the category description
%%tag_description%%Replaced with the tag description
%%term_description%%Replaced with the term description
%%term_title%%Replaced with the term name
%%searchphrase%%Replaced with the current search phrase
%%sep%%The separator defined in your theme’s wp_title() tag.

Advanced Variables

%%pt_single%%Replaced with the post type single label
%%pt_plural%%Replaced with the post type plural label
%%modified%%Replaced with the post/page modified time
%%id%%Replaced with the post/page ID
%%name%%Replaced with the post/page author’s ’nicename‘
%%userid%%Replaced with the post/page author’s userid
%%currenttime%%Replaced with the current time
%%currentdate%%Replaced with the current date
%%currentday%%Replaced with the current day
%%currentmonth%%Replaced with the current month
%%currentyear%%Replaced with the current year
%%page%%Replaced with the current page number (i.e. page 2 of 4)
%%pagetotal%%Replaced with the current page total
%%pagenumber%%Replaced with the current page number
%%caption%%Attachment caption
%%focuskw%%Replaced with the posts focus keyword
%%term404%%Replaced with the slug which caused the 404
%%cf_<custom-field-name>%%Replaced with a posts custom field value
%%ct_<custom-tax-name>%%Replaced with a posts custom taxonomies, comma separated.
%%ct_desc_<custom-tax-name>%%Replaced with a custom taxonomies description

Quellen und Links

WordPress: FlexSlider in Standard-Galerie Shortcode [gallery] ersetzen

Die Standard-Galerie in WordPress wird durch das Shortcode gallery erzeugt. Für die Ausgabe kann man dieses durch einen Slider (z.B. den bliebten jQuery FlexSlider von WooThemes) ersetzen.

Wir haben es getestet und in einem Projekt umgesetzt.

Quellen und Links

WordPress Theme: Menüs registrieren und ausgeben

In WordPress lassen sich sehr einfach eigene Menüs in einem WordPress Theme registrieren und an beliebiger Stelle im Theme (z.B. in Header oder Footer) ausgeben. Die Funktionen register_nav_menus() und wp_nav_menu() sind die bequeme Basis dafür.

WordPress Menü registrieren

Mit folgendem Snippet in der functions.php können neue Menüs (footer-menu und header-menu) in einem WordPress Theme registriert werden. In dem PHP Array array(Menu 1, Menu 2, …, Menu n) kann dies sehr schnell um sehr viele Menüs ergänzt werden.

WordPress Menü ausgeben

Die Ausgabe der Menüs erfolgt über die Funktion wp_nav_menu() an der Position, wo es ausgegeben werden soll, z.B. in den Template-Dateien footer.php oder header.php.

Quellen und Links

WordPress Theme: Widget Area hinzufügen

WordPress Widget Areas sind eine ideale Möglichkeit neue Bereiche in der Webseite (korrekt im jeweiligen WordPress Theme) zu schaffen, um Inhalte (auch optional) einzufügen oder später zu bearbeiten.

What is Widgetizing?

Widgetizing is a pseudo word that describes the process of implementing Widgets and Widget Areas into your Theme.

Ursprünglich war das Widgetizing für die Blog-Sidebar gedacht, es ist jedoch an jeglicher Stelle im Theme möglich, durch eine Widget Area einen neuen Platzbereich zu schaffen. In dieser Widget Area können alle zur Verfügung stehenden Widgets (Text-Widget, Individuelle Menüs oder andere spezielle Widgets von externen Plugins) integriert werden.

WordPress Widget Area registrieren

Sobald dieses Snippet in die functions.php des Themes eingefügt ist, steht dieser neue Widget Bereich im Backend unter Themes > Widgets für alle angelegten Widgets bereit und kann mit diesen gefüllt werden. Von diesen Dynamic Sidebars können unzählig viele registriert werden, allerdings mit eigener ID (intern wichtig) und Namen (dieser wird im Backend ausgegeben). Eine Beschreibung und weitere Parameter (class, before_widget etc.) können optional ergänzt werden.

Widget Area im Theme ausgeben

Die Widget Area (Dynamic Sidebar) kann im Theme in die verschiedenen Templates (z.B. sidebar.php, header.php oder footer.php) mit folgendem Snippet platziert werden. Mit der if-Bedingung vorweg wird geprüft, ob die Sidebar aktiv ist, also ein Widget enthalten ist.

Du hast Tipps, Vorschläge oder Fragen dazu? Dann schreibe uns einen Kommentar unter diesen Beitrag!

Quellen und Links

WordPress auf HTTPS (SSL-Verschlüsselung) umstellen

Sicher ist sicher. Daher rät sich eine Umstellung aller WordPress Webseiten auf die SSL-Verschlüsselung (möglichst TLS 1.2) über das verschlüsselte Protokoll HTTPS. Durch dieses Verfahren werden Daten verschlüsselt und sicher (durch Datenintegrität und Authentifizierung) übertragen. Ein nicht zu unterschätzender Fakt: Auch Suchmaschinen bevorzugen diese Verschlüsselung bei ihrem Ranking.

Vorbereitung

Vor der Umstellung benötigt man ein digitales SSL Zertifikat. Ist dieses Zertifikat auf dem Server eingebunden und hinterlegt (diese Thema ist einen extra Beitrag wert), kann die Webseite auf HTTPS (HyperText Transfer Protocol Secure) umgestellt werden.

Ein Tipp für ein freies und offenes Zertifikat ist Let’s Encrypt, was sich derzeit in der Beta-Phase befindet und dennoch bereits über eine Million Zertifikate afür über 2,4 Millionen Domains ausgestellt hat.

Let’s Encrypt is a free, automated, and open certificate authority brought to you by the Internet Security Research Group (ISRG).

WordPress auf HTTPS umstellen

Folgende Schritte (die noch verfeinert und ausgebaut werden können) sollten bei der Umstellung von WordPress auf HTTPS befolgt werden.

1) URLs und interne Links umstellen

Zum Umstellen aller URLs und internen Links, die auf HTTPs zugreifen sollen, können die Datenbank-Einträge angepasst werden. Dies ist auch manuell in den einzelnen Beiträgen, Widgets und Menüs sowie in den Einstellungen (im Backend unter Einstellungen > Allgemein: WordPress- und Website-Adresse) möglich.

Über die MySQL-Datenbank kann folgender SQL-Code verwendet werden. Vorsicht! Vorab ein Backup erstellen.

Hinweis: Bei Multisite-Installationen müssen zusätzlich alle Unterseiten mit angepasst werden.

Bei internen Bilddateien, z.B. im Theme, Shortcodes oder Widgets, empfiehlt sich die Umstellung der Pfade ohne Protokoll (also ohne http:// oder https://) anzugeben, was dann folgende Struktur aufweist:

2) HTTPs erzwingen und weiterleiten

Nach der Umstellung auf HTTPS ist das anschließende Erzwingen dieses Protokolls sehr wichtig, da ansonsten die Webseite ebenfalls noch über das unverschlüsselte Protokoll HTTP erreicht werden kann. Gleichfalls würde bei den Suchmaschinen ein doppelter Inhalte (zwei URLs mit selben Inhalte) erzeugt werden.

3) URLs und Links prüfen

Wichtig ist das Prüfen aller Links und neuen URLs! Werden alle Seiten korrekt und verschlüsselt übertragen und ist das kleine grüne Schloss in der Browser-Adresszeile zu sehen? Wenn nicht, sind meist nicht alle Dateien auf HTTPS umgestellt.

Abschließend sollten die Suchmaschinen einen Hinweis auf die Umstellung auf die neuen URLs erhalten. Dies kann bspw. über die sitemap.xml oder die Webmastertools passieren.

Google empfiehlt zusätzlich:

Verwenden Sie einen Webserver, der HTTP Strict Transport Security, kurz HSTS, unterstützt, und vergewissern Sie sich, dass diese Option aktiviert ist. HSTS weist den Browser an, Seiten automatisch über HTTPS anzufordern, auch wenn der Nutzer http in die Adressleiste des Browsers eingibt. Gleichzeitig wird Google aufgefordert, sichere URLs in den Suchergebnissen anzuzeigen. Durch diese Maßnahmen wird das Risiko minimiert, dass Nutzer unsichere Inhalte erhalten.

Tipp: Webhoster all-inkl.com unterstützt Let’s Encrypt-Zertifikate

Alle Tarife mit SSL-Erweiterung unterstützen ab sofort die Einbindung von kostenlosen „Let’s Encrypt“-Zertifikaten. Hierfür gibt es im Punkt „Domain bzw. Subdomain bearbeiten“ unter „SSL Schutz: bearbeiten“ einen weiteren Menüpunkt „Let’s Encrypt“. Dort lässt sich mit einem einzigen Klick das Zertifikat für die jeweilige Sub-/Domain beziehen, welches vom System etwa 30 Tage vor dem Ablaufen automatisch erneuert wird. Bitte beachten Sie, dass sich das „Let’s encrypt“-Projekt derzeit noch in der offenen Testphase befindet.
08.04.2016 08:00 – Unterstützung von Let’s Encrypt-Zertifikaten

Quellen und Links

WordPress Login wp-login.php schützen und verstecken

Um sich mit WordPress vor hartnäckigen Brute Force Attacks zu schützen, ist es eine effektive Lösung das WordPress-Login und dem direkten Zugang unter wp-login.php zu verstecken.

Problem:

Standardmäßig findet sich das WordPress Login bei jeder normalen Installation unter domain.tld/wp-login.php. Dies ist für einen Angreifer natürlich ein gefundenes Eingangstor und sie müssen sich lediglich um den Benutzernamen (kann relativ einfach gefunden werden) und das Passwort (mit viel Rechenleistungen ist auch dies knackbar) kümmern. Etwas sportlich formuliert, steht dann das Backend offen.

Lösung:

Um jetzt das Eingangstor zu verlegen, könnt ihr das kostenfreie WordPress Plugin WPS Hide Login verwenden. Dieses unterbindet den direkten Zugriff auf den /wp-admin/ und die Login-Datei wp-login.php und leitet auf eine gewünschte Alterativadresse um. Dazu könnt ihr im Backend unter Einstellungen > Allgemein einen neuen Pfad angeben, z.B. domain.tld/mein-backend-zugang/.

Fertig und vor allem sehr schnell erledigt!

Sehr praktisch: Das Plugin WPS Hide Login ist auch Multiuser-tauglich und somit auch für größere WordPress-Netzwerke zu verwenden.

Wichtig:

  1. Ihr solltet euch unbedingt den neuen Pfad merken, ansonsten findet ihr selbst den Weg ins Backend nicht mehr. Alternativ könnt ihr natürlich in der Datenbank nachschauen.
  2. Bei einer ersten Installation solltet ihr ggf. den Cache ausreichen leeren (z.B. beim W3 Total Cache), um auch den neuen Pfad zum WordPress Login zu erreichen.
  3. Nicht zu unterschätzen: Neben diesem Plugin solltet ihr weitere Sicherheitsmaßnahmen (allen voran sichere Passwörter!) verwenden.

Quellen und Links