kostenlose WordPress Snippets
Willkommen zu einer umfangreichen Sammlung kostenloser WordPress-Snippets! Snippets sind kleine Code-Schnipsel, die das Leben eines WordPress-Entwicklers erheblich erleichtern können. Sie ermöglichen es, bestimmte Funktionen oder Anpassungen schnell und einfach in deine WordPress-Seite zu integrieren. In diesem Artikel werde ich dir eine Vielzahl nützlicher Snippets vorstellen, die dein WordPress-Erlebnis verbessern können.
DarkWolfCave.de
Kostenlose WordPress Snippets
Snippets können dir das Leben generell etwas leichter machen. Manchmal allerdings auch neue Fehlermöglichkeiten einbauen. Also am besten immer zuerst Backups von den Dateien / Datenbanken / usw erstellen bei denen etwas geändert werden soll. Ich nutze dafür UpdraftPlus schon seit dem ich mit dem Blog gestartet habe und kann es dir nur sehr ans Herz legen.
Was brauchen wir für die Snippets?
Damit du die hier vorgestellten Snippets auch bei dir einbauen kannst, benötigst du entweder ein Child-Theme, indem du dann die Änderungen in der functions.php usw. durchführst, oder du nutzt ein Plugin.
Ich empfehle dir das, in der einfachen Version sogar kostenlose, PlugIn “Code Snippets”.
Mit diesem ist es ganz einfach kleine Änderungen (also die Snippets) in deine WordPress-Seite einzubauen. Und auch wieder zu deaktivieren! Einfach ein und ausschalten. Perfekt zum testen und rumspielen.
Weiterhin hat CodeSnippets eine geniale Funktion eingebaut.
Denn in dem Fall dass deine Änderungen deine komplette Seite zerstören würden, erhältst du lediglich den Hinweis dass das doof war und wirst zu der Version vor diesen Änderungen zurückgeleitet.
Wie gesagt: genial!
Außerdem hast du damit deine Snippets schön übersichtlich auf einer Seite und musst auch nicht selbst in der functions.php rumfummeln. Weiterhin bleiben die Änderungen auch nach einem Update des Themes vorhanden (sofern keine grundsätzlichen Filter usw einen anderen Namen bekommen sollten…).
Auf dieser Seite werde ich dir kleinere, aber dennoch nützliche, Snippets vorstellen. Es wird aber auch noch ein paar umfangreichere geben. Diesen widme ich dann allerdings einen eigenen Beitrag und verlinke sie gaaaanz unten.
WebFonts aus Customizer entfernen
Entfernt im Customizer-Bereich die Auswahl für die Google WebFonts. Löscht NICHT die eigentliche Webanbindung!
// hiermit wird die Auswahl für die Google Fonts im Customizer-Bereich entfernt. // Entfernt NICHT grundsätzlich die Google Web Fonts!!! add_action('admin_init', function () { add_filter('generate_google_fonts_array', function(){ return array(); }); });
IP Adressen nicht speichern
Kleines Snippet zum Löschen der IP-Adressen bei den Kommentaren (löscht keine bereits eingetragenen) Erklärung: es wird keine IP mehr mitgesendet , der Wert wird einfach auf leer ('') gesetzt.
function dw_IP_nicht_bei_kommentaren_speichern( $ip ) { return ''; } add_filter( 'pre_comment_user_ip', 'dw_IP_nicht_bei_kommentaren_speichern' );
Kommentar-Feld anpassen (Website entfernen)
Hiermit wird das Feld "Website" (url) aus dem Kommentarfeld entfernt und der Text angepasst.
add_action( 'after_setup_theme', 'dw_add_comment_url_filter' ); function dw_add_comment_url_filter() { add_filter( 'comment_form_default_fields', 'dw_disable_comment_url', 20 ); } function dw_disable_comment_url($fields) { unset($fields['url']); return $fields; } add_filter( 'comment_form_default_fields', 'dw_comment_form_change_cookies_consent' ); function dw_comment_form_change_cookies_consent( $fields ) { $commenter = wp_get_current_commenter(); $consent = empty( $commenter['comment_author_email'] ) ? '' : ' checked="checked"'; $fields['cookies'] = '<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes"' . $consent . ' />' . '<label for="wp-comment-cookies-consent">Meinen Namen und E-Mail in diesem Browser speichern, bis ich wieder kommentiere.</label></p>'; return $fields; }
JavaScript von Contact Form 7 NUR auf der Kontaktseite laden lassen
Mit Contact Form 7 kann man schöne Formulare erstellen. Allerdings fügt dies im Header die entsprechenden JS-Aufrufe hinzu.
Und lädt somit bei jeder Seite den Code. Meistens benötigt man diesen aber auch wirklich nur auf der Kontakt-Seite.
Mit diesem Snippet entfernst du das generelle Laden des JS-Blocks. Wie immer entweder in die functions.php (Child-Theme) oder über das PlugIn CodeSnippets einbauen. Welches ich auch empfehlen würde.
Die Page-ID musst du entsprechend ändern. Wenn du im Admin-Bereich bei “Seiten” bist, und dort mit der Maus über deine
Kontakt-Seite gehst, siehst du einen Link mit einer Zahl – dies ist die PageID (hier 6060)
function contactform7_only_on_ContactPage(){ if(! is_page(6060) ) // <-- Page ID ändern! { //entfernen von JS und CSS von allen anderen Seiten außer der PageID wp_dequeue_script('contact-form-7'); wp_dequeue_style('contact-form-7'); } } add_action( 'wp_enqueue_scripts', 'contactform7_only_on_ContactPage' );
Aktualisierung (last modified) Datum im Kopfbereich anzeigen
Mit diesem kleinen Snippet kannst du im Kopfbereich (PageHero) das angezeigte Erstellungsdatum in das zuletzt geänderte Datum (last modified) ändern. Du kannst diesen Shortcode dann mit modified_date
(in [] gesetzt) von überall aufrufen. In meinem Fall dann im “Element” – “PageHero”.
function post_modified_date() { return get_the_modified_date(); } add_shortcode( 'modified_date', 'post_modified_date' );
Entweder letzte Aktualisierung oder letzte Änderung
Mit dem oben genannten Code kann man auch noch etwas spielen und z.B. einbauen dass das Erstellungsdatum angezeigt werden soll solange es keine
Änderung gibt und ansonsten das Änderungsdatum. Hier ist der Text dann im Script fest hinterlegt. Ansonsten wäre der Aufruf genauso wie im oberen
Beispiel mit modified_date
(in [] gesetzt). Bitte nicht beide gleichzeitig aktiv setzen...
function post_modified_date () { $mod_date = get_the_modified_date(); if ( get_the_date() !== $mod_date ) { return 'letzte Änderung: ' . $mod_date; } else { return 'Erstellt am: ' . get_the_date(); } } add_shortcode( 'modified_date', 'post_modified_date' );
Erstellungsdatum UND Änderungsdatum anzeigen
Jetzt kann man das Snippet noch etwas umbiegen und erhält das Erstellungsdatum sowie das Änderungsdatum - sofern etwas geändert wurde.
Falls nicht sieht man nur das Erstellungsdatum.
Der Aufruf hier wäre mit both_date
(in [] gesetzt). Aufgerufen wird dieser Shortcode immer da wo man es sehen möchte.
function post_both_date () { $mod_date = get_the_modified_date(); $create_date = get_the_date(); if ( $create_date !== $mod_date ) { return 'Erstellt am: '. $create_date. '<br />'.' Letzte Änderung: ' . $mod_date; } else { return 'Erstellt am: ' . $create_date; } } add_shortcode( 'both_date', 'post_both_date' );
Nach falschem Login – Weiterleitung auf andere Seite
Mit diesem kleinen Teufelswerk kannst du dich selbst, aber auch Menschen mit bösen Absichten zum Wahnsinn treiben…
Bei jedem falschen Login-Versuch wird derjenige direkt auf eine andere Seite weitergeleitet.
In diesem Beispiel zu google.de. Einbau wie immer in functions.php (Child-Theme!), eigene php als Plugin oder über das PlugIn CodeSnippets .
if ( ! function_exists( 'dwc_wrong_login_redirect' ) ) : /** * Nach falsche Login Weiterleitung auf andere Seite, hier google.de */ function dwc_wrong_login_redirect() { wp_redirect( 'https://www.google.de' ); exit; } add_filter( 'login_errors', 'dwc_wrong_login_redirect' ); endif;
Standard Mail-Versand ohne PlugIn auf SMTP Mail-Versand ändern
Wordpress (und dafür programmierte Tools/PlugIns) versenden E-Mails in der Regel über die normale mail()-Funktion in PHP. Dies kann auch schon mal zu Problemen führen, manche Webhoster haben die mail()-Funktion sogar ganz deaktiviert. Nun könnte man auf eins dieser unzähligen PlugIns zurückgreifen, oder man nutzt seine eigenen Snippets und aktiviert SMTP für phpmailer.
Einbau wie immer in die functions.php (Child-Theme!), eigene php als Plugin oder über das PlugIn Code Snippets .
Du musst in der wp-config.php einige Änderungen, bzw deine Zugangsdaten zu deinem Mailserver/Anbieter eintragen, über die Wordpress dann Mails versenden soll.
// wp-config.php // die SMTP Daten müssen VOR diesen Einträgen hinzugefügt werden (auf jeden Fall vor der IF "ABSPATH" Abfrage) // /* That's all, stop editing! Happy blogging. */ // /** Absolute path to the WordPress directory. */ // if ( !defined('ABSPATH') ) // Bitte entsprechend deines Anbieters/Servers die Daten ändern // SMTP Authentication define( 'SMTP_USER', 'user@example.com' ); // Username to use for SMTP authentication define( 'SMTP_PASS', 'smtp password' ); // Password to use for SMTP authentication define( 'SMTP_HOST', 'smtp.example.com' ); // The hostname of the mail server define( 'SMTP_FROM', 'website@example.com' ); // SMTP From email address define( 'SMTP_NAME', 'e.g Website Name' ); // SMTP From name define( 'SMTP_PORT', '25' ); // SMTP port number - likely to be 25, 465 or 587 define( 'SMTP_SECURE', 'tls' ); // Encryption system to use - ssl or tls define( 'SMTP_AUTH', true ); // Use SMTP authentication (true|false) define( 'SMTP_DEBUG', 0 ); // for debugging purposes only set to 1 or 2
// folgendes in die functions.php (CHILD) oder über das Tool Code Snippets neu hinzufügen // die SMTP Variablen werden in der wp-config.php gesetzt function send_smtp_email( $phpmailer ) { $phpmailer->isSMTP(); $phpmailer->Host = SMTP_HOST; $phpmailer->SMTPAuth = SMTP_AUTH; $phpmailer->Port = SMTP_PORT; $phpmailer->Username = SMTP_USER; $phpmailer->Password = SMTP_PASS; $phpmailer->SMTPSecure = SMTP_SECURE; $phpmailer->From = SMTP_FROM; $phpmailer->FromName = SMTP_NAME; } add_action( 'phpmailer_init', 'send_smtp_email' );