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: 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

PHP Warning: Illegal String Offset Error

Nach der Umstellung von PHP 5.4 und höher immer mal wieder eine Fehlerursache: PHP Warning: Illegal string offset.

Beispiel:

PHP Fehlerausgabe: Warning: Illegal string offset in [‚index‘] in www/root/file.php:28.

Lösung:

Erst das Array prüfen und dann den Index abfragen. Fertig!

Weitere Lösungen, auch speziell für WordPress, sind unter Fix PHP Illegal String Offset Error zu finden.

 

WordPress: E-Mail, wenn eine Beitrag aktualisiert wurde

Wer ihr mit mehreren Mitarbeitern an einem Blog schreibt oder arbeitet, möchte ihr auch auf dem neuesten Stand der Beiträge bleiben. Folgendes Snippet schickt eine E-Mail an den Administrator, wenn ein Beitrag aktualisiert wurde.

Manchmal hilfreich, wenn zu viele Änderungen anstehen, kann es auch zu einer Meldungsflut kommen. Wer es braucht, kann diesen Code verwenden, austesten oder auch erweitern. Das Snippet kann in der z.B. in der functions.php eines WordPress Themes verwendet werden.

Wer weitere Hilfe beim Einbinden oder Ausprobieren benötigt, kann sich gerne melden. Eure Erfahrungen sind ebenfalls gefragt.

WordPress: Suchergebnisse filtern, Posts oder Pages ausschließen

Bei der Standardsuche in WordPress werden automatisch alle Beiträge (Posts) und Seiten (Pages) durchsucht und bei einem Treffer ausgegeben. Um diese internen Suchergebnisse vorab zu filtern und nur eine von beiden Beitragstypen zu durchsuchen, könnt ihr folgenden Filter in die functions.php eurer WordPress Themes einsetzen.

Durch dieses Snippet werden nur Posts bei der Suche berücksichtigt.

WordPress Core Funktion existiert im WordPress Theme

Nach dem Update von WordPress 4.2 fanden wir den Fall vor, dass eine Funktion im WordPress Code neu hinzukam, die auch im verwendeten Theme schon definiert war.

Fatal error: Cannot redeclare get_avatar_url() (previously declared in /home/blog/wordpress/wp-includes/link-template.php:3414) in /home/blog/wordpress/wp-content/themes/…/functions.php on line 123

Um diese Problem auszuschließen, bietet sich bei neuen Funktionen im Theme die Prüfung an, ob diese bereits existiert.

Der folgende Code-Schnippsel zeigt dies exemplarisch.

Wie würdet ihr dieses Problem lösen?