Bei WordPress gibt es eine ganze Menge Hooks, die dafür sorgen, dass mit relativ wenig Code viel verändert werden kann. Hooks sind dabei bestimmte Stellen im Core des Content Management Systems, aber auch in den Themes und Plugins, in welche man sich als Anwender*in »Einhaken« kann, um Abläufe oder Funktionen gezielt zu manipulieren oder abzuändern. Dabei gibt es Filter Hooks und Action Hooks, die entweder Werte beeinflussen, wie der Name es schon sagt, oder ganz direkt eingreifen und gezielte Aktionen ausführen.
Hooks ist dabei ein eher wenig genutzter Begriff, weil es meist nur um die Snippets geht, die diese Hooks verwenden, um bestimmte Funktionen zu integrieren. Das kann via Plugin geschehen, aber auch über ein Child Theme. Noch viel einfacher ist allerdings der Einsatz der functions.php, die jedem WordPress Theme beigelegt wird und die genau für solche Snippets gedacht ist.
So verfügt jedes WordPress Theme über eine Datei, die auf den Namen functions.php hört und entsprechend bearbeitet werden kann. Snippets werden hier ganz einfach eingefügt, um Funktionen direkt zu integrieren und nicht den Umweg eines Plugins gehen zu müssen. Das ist simpel, performant und schnell umgesetzt. Gerade für kleinere Funktionen lohnt es sich nämlich oft nicht, ein großes Plugin zu installieren. Bei vielen Dingen reicht ein Snippet daher vollkommen aus.
7 Top-Snippets für WordPress
Mit die besten WordPress Snippets möchten wir euch in diesem Artikel vorstellen. Wobei »beste« immer relativ ist. Bei Snippets kommt es stark darauf an, wie genau ihr euren WordPress Blog verwendet und welche Funktionen ihr tatsächlich benötigt. Was diese Snippets aber so besonders macht, ist, dass sie tolle Funktionen mitbringen, die kein Plugin benötigen. Auf der anderen Seite haben wir auch ein paar Snippets für euch, die solche Funktionen gezielt entfernen und damit für eine bessere Performance sorgen.
Wichtig: Wie immer ist jeder WordPress Blog sehr individuell. Es kann also vorkommen, dass Snippets sich untereinander blockieren oder Themes und installierte Plugins dafür sorgen, dass bestimmte Snippets nicht wie gewünscht funktionieren. Da es zu viele Einzelfälle gibt, muss jeder selbst prüfen, ob die vorgestellten Snippets genau so übernommen werden können oder abgeändert werden müssen.
Sitemap von WordPress 5.5 deaktivieren
Mit WordPress 5.5 brachten die Entwickler eine Funktion mit, die eigentlich eine Art Standard darstellt. Gemeint ist die XML Sitemap, die alle Seiten einer Domain für Suchmaschinen aufbereitet darstellt. Die Funktion kam nur viel zu spät, denn längst gab es eine Menge WordPress Plugins, die diese Funktion nicht nur rudimentär umgesetzt haben, sondern ganz gezielt und optimiert, inklusive einer Priorisierung der entsprechenden Seiten. Die Lösung, die WordPress jetzt anbietet, kommt da nicht einmal ansatzweise mit und wirkt stark veraltet. Grund genug, die neue Funktion komplett zu deaktivieren. Das geht mit folgendem Snippet.
add_filter( 'wp_sitemaps_enabled', '__return_false' );
Relative URLs in WordPress
Relative URLs können viele Vorteile haben. Sie sind einfacher, kürzer und vor allem sind sie auch bei einem Domainwechsel noch gültig, ohne dass massenweise Links umgeschrieben werden müssen. WordPress sieht dies aber nicht zwangsläufig vor, weshalb ein Snippet notwendig ist, um relative URLs in dem CMS zu realisieren. Hier muss jeder selbst entscheiden, wie er die relativen URLs anwenden möchte und somit Teile des Snippets entsprechend entfernen oder hinzufügen.
function make_href_root_relative($input) { return preg_replace('!http(s)?://' . $_SERVER['SERVER_NAME'] . '/!', '/', $input); } function root_relative_permalinks($input) { return make_href_root_relative($input); } add_filter( 'day_link', 'root_relative_permalinks'); add_filter( 'year_link', 'root_relative_permalinks'); add_filter( 'post_link', 'root_relative_permalinks'); add_filter( 'page_link', 'root_relative_permalinks'); add_filter( 'term_link', 'root_relative_permalinks'); add_filter( 'month_link', 'root_relative_permalinks'); add_filter( 'search_link', 'root_relative_permalinks'); add_filter( 'the_content', 'root_relative_permalinks'); add_filter( 'the_permalink', 'root_relative_permalinks'); add_filter( 'get_shortlink', 'root_relative_permalinks'); add_filter( 'post_type_link', 'root_relative_permalinks'); add_filter( 'attachment_link', 'root_relative_permalinks'); add_filter( 'get_pagenum_link', 'root_relative_permalinks'); add_filter( 'wp_get_attachment_url', 'root_relative_permalinks'); add_filter( 'post_type_archive_link', 'root_relative_permalinks'); add_filter( 'get_comments_pagenum_link', 'root_relative_permalinks');
Responsive Images abschalten
Dank dem Picture-Tag kann inzwischen mehr als ein Bild hinterlegt werden. Ganz schön praktisch, bei kleinen Blogs jedoch unnötig, zumal jedes Bild auch seinen Speicherplatz beansprucht. Da macht es durchaus Sinn, die Responsive Images in WordPress via Snippet abzuschalten, um nur noch ein Bild auszuliefern. Das reicht, spart Ressourcen, vereinfacht die Verwaltung.
remove_filter( 'the_content', 'wp_make_content_images_responsive' );
Heartbeat API deaktivieren
Die Heartbeat API in WordPress ist so etwas wie der menschliche Puls. Er schlägt immer und immer wieder und unaufhörlich. WordPress nutzt die Funktion, um im Dashboard etc. Änderungen wahrnehmen zu können. Darunter fallen zum Beispiel das automatische Speichern von Beiträgen, sobald diese verändert wurden. Wer all dies nicht benötigt, da er WordPress nur rudimentär verwendet und Entwürfe selbst sichert, kann die Heartbeat API deaktivieren. Das spart ein paar Ressourcen auf dem Server und kann je nach Konfiguration die Performance unter hoher Last verbessern.
add_action('init', 'stop_heartbeat', 1); function stop_heartbeat() { wp_deregister_script('heartbeat'); }
Kommentare deaktivieren
Schonmal darüber nachgedacht, auf die Kommentare in WordPress gänzlich zu verzichten? Kein Wunder, denn bei den meisten Blogs, Websites und Magazinen sind die Kommentarzahlen drastisch gesunken. Gibt es etwas Interessantes zu berichten, wird heute vielmehr der Artikel geteilt oder seine Meinung via Social Media verkündet. Einen Kommentar tätigen nur noch die wenigsten, es braucht zu viel Zeit, wird zu wenig gesehen und die Diskussionen, die es in Blogs früher gab, sind auch Schnee von gestern. Keine Kommentare zu haben, wirkt da oft besser als nur äußerst wenige, vor allem für eventuelle Partner und Werbekunden. Das geht via Plugin, ein Snippet macht das Ganze aber einfacher, schneller und vor allem minimaler möglich.
function disable_comments_status() { return false; } add_filter('comments_open', 'disable_comments_status', 20, 2); add_filter('pings_open', 'disable_comments_status', 20, 2); function disable_comments_post_types_support() { $post_types = get_post_types(); foreach($post_types as $post_type) { if (post_type_supports($post_type, 'comments')) { remove_post_type_support($post_type, 'comments'); remove_post_type_support($post_type, 'trackbacks'); } } } add_action('admin_init', 'disable_comments_post_types_support'); function disable_comments_hide_existing_comments($comments) { $comments = array(); return $comments; } add_filter('comments_array', 'disable_comments_hide_existing_comments', 10, 2); function disable_comments_admin_menu() { remove_menu_page('edit-comments.php'); } add_action('admin_menu', 'disable_comments_admin_menu'); function disable_menus_admin_bar_render() { global $wp_admin_bar; $wp_admin_bar->remove_menu('comments'); } add_action('wp_before_admin_bar_render', 'disable_menus_admin_bar_render');
Kategorien mit body_class erweitern
Kleines Snippet mit großer Wirkung. Wer folgendes Snippet integriert, sorgt dafür, dass der Body-Tag weitere Informationen enthält, je nachdem, welche Kategorie angezeigt wird. Genutzt werden kann dies für gezieltes Styling der einzelnen Seiten oder dazu, um die Parameter anderweitig ansprechen zu können.
add_filter('body_class','add_category_to_single'); function add_category_to_single($classes) { if (is_single() ) { global $post; foreach((get_the_category($post->ID)) as $category) { // add category slug to the $classes array $classes[] = $category->category_nicename; } } // return the $classes array return $classes; }
Eigenen Shortcode verwenden
Shortcodes sind innerhalb von WordPress sehr mächtig, da sie Inserts deutlich vereinfachen, vor allem wenn diese immer wieder auftreten. Das kann ein Bild, ein Video, ein Link oder ein vorgefertigter Satz sein, der an das Ende eines jeden Artikels platziert werden soll. Mit einem eigenen Shortcode lassen sich gewisse Tags, Integrationen oder auch nur Infos vereinfachen. Die Einsatzgebiete sind vielfältig. Das folgende Snippet erstellt einen Shortcode namens »Lorem«, welcher mit »[lorem]« genutzt werden kann. Im Beispiel fügt der Shortcode dann ganz simpel das »Lorem Ipsum« ein. Passt den Code also einfach so an, wie er euch gefällt und verändert seinen Inhalt in das, was ihr in eurem Blog benötigt. Möglich ist mit Shortcodes natürlich noch viel mehr. Das Snippet stellt nur den Anfang dar.
function my_shortcode() { return 'Lorem Ipsum'; } add_shortcode('Lorem', 'my_shortcode');
Mit Hooks und Snippets zu mehr Individualität
Richtig eingesetzt, sorgen Snippets dafür, dass deutlich weniger Plugins im Einsatz sind. Außerdem können sie Kernfunktionen von WordPress deaktivieren, was zuletzt immer wieder notwendig geworden ist, um die Performance zu verbessern. Zum Großteil sind die Snippets dabei nicht viel anders als das, was Plugins üblicherweise erledigen. Mit dem großen Unterschied, dass die Plugins von WordPress eben erst geladen und ausgeführt werden müssen, während das Snippet direkt in die functions.php des jeweiligen Themes integriert wird.
Über Sinn und Unsinn der Snippets oben lässt sich streiten. Für uns gehören sie mit zu den besten Snippets, die uns spontan einfallen. So richtig mächtig wird die ganze Sache aber sowieso erst dann, wenn ihr individuelle Hooks verwendet und so einzigartige Funktionen erzeugt, speziell an eure Website angepasst. Die vorgefertigten Snippets sind oft nur eine Copy & Paste Lösung. Das geht besser, deutlich individueller und vor allem speziell für euren Einsatzzweck komponiert. Doch dafür braucht es natürlich etwas Fachwissen.
Wir hoffen, dass das ein oder andere Snippet dabei war, welches auch für euch interessant erscheint. Zumindest aber haben wir euch gezeigt, wozu die Hooks in der Lage sind, die WordPress bereits von Haus aus mit sich bringt.
by A-DIGITAL one
Unsere Herzen schlagen Digital, unsere Projekte leben Digital, unsere Kunden lieben und schätzen Digital! Die einzigartige digitale Performance, die wir seit 1999 an den Tag legen.
Mit unserem Team von über 45 Experten begleiten wir Sie auf Ihrem Weg der digitalen Transformation. Mit klaren Strategien, persönlicher Betreuung und exzellenter Ausführung entwickeln wir, innovativ und individuell, maßgeschneiderte digitale Lösungen, die performen und verkaufen können.