Nützliche Code Snippets
Praktische Code-Beispiele zur schnellen Umsetzung von Webprojekten
In unserer WordPress-Agentur haben wir uns darauf spezialisiert, massgeschneiderte Lösungen für Websites zu entwickeln und bestehende Systeme zu optimieren. Ein grosser Teil unserer Arbeit umfasst die Programmierung und Anpassung von Funktionen, bei denen wir häufig auf wiederkehrende Codeabschnitte zurückgreifen müssen. Um den Entwicklungsprozess effizienter und schneller zu gestalten, haben wir eine umfassende Übersicht von nützlichen Code-Snippets und Hacks erstellt.
Diese Sammlung enthält unsere besten Tipps, Tricks und Lösungen für verschiedene Herausforderungen in der WordPress-Entwicklung. Von kleinen Anpassungen bis hin zu komplexen Funktionen - hier finden Sie alles, was Sie brauchen, um Ihre Website schnell und professionell anzupassen.
Da immer mehr Kollegen Interesse an unseren Hacks zeigten und ebenfalls Zugriff darauf wollten, entstand die Idee, diese Sammlung öffentlich zugänglich zu machen. Mit dieser Entscheidung möchten wir unsere Erfahrungen teilen und anderen Entwicklern, Agenturen und WordPress-Nutzern helfen, ihre Projekte effizienter umzusetzen. Wir hoffen, dass diese Ressourcen vielen weiterhelfen und zur Optimierung Ihrer WordPress-Seiten beitragen.
WordPress Hacks
WooCommerce Hacks
Enfold Hacks
add_filter('upload_mimes', 'cc_mime_types');
function cc_mime_types($mimes) {
$mimes['svg'] = 'image/svg+xml';
return $mimes;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11257"
}},{
"@type": "Question",
"name": "Wie kann ich Versionsnummern überall entfernen (Sicherheit) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
if ( !is_admin() ) {
// Sicherheitsstuff um Versionsnummern von WordPress zu verstecken
add_filter( 'comment_class' , 'remove_comment_author_class' );
add_action( 'init', 'strip_wp_version', 1 );
add_filter( 'script_loader_src', 'strip_jscss_versions');
add_filter( 'style_loader_src', 'strip_jscss_versions');
}
function strip_wp_version() {
global $wp_version;
$v = intval( rand(0, 9999) );
$d = intval( rand(9999, 99999) );
$m = intval( rand(99999, 999999) );
$t = intval( rand(999999, 9999999) );
if ( function_exists('the_generator') ) {
remove_filter( 'wp_head', 'wp_generator' ,9999);
$actions = array( 'rss2_head', 'commentsrss2_head', 'rss_head', 'rdf_header', 'atom_head', 'comments_atom_head', 'opml_head', 'app_head' );
foreach ( $actions as $action ) {
remove_action( $action, 'the_generator' );
}
$wp_version = $v;
$wp_db_version = $d;
$manifest_version = $m;
$tinymce_version = $t;
}
else {
add_filter( "bloginfo_rss('version')", create_function('$a', "return $v;") );
$wp_version = $v;
$wp_db_version = $d;
$manifest_version = $m;
$tinymce_version = $t;
}
}
function strip_jscss_versions($src) {
if (stripos($src, "?ver=") OR stripos($src, "?v=")) {
$src = explode('?v', $src);
return $src[0];
}
elseif (stripos($src, "&ver=") OR stripos($src, "&v=")) {
$src = explode('&v', $src);
return $src[0];
}
return $src;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11255"
}},{
"@type": "Question",
"name": "Wie kann ich Youtube DSGVO konform einbinden umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
add_filter( 'embed_oembed_html', 'WUK_iframe_proportion_wrap', 10, 4 );
function WUK_iframe_proportion_wrap ( $html, $url, $attr, $post_ID ) {
$html = str_replace(
array("?","https://www.youtube.com/"),
array("?rel=0&","https://www.youtube-nocookie.com/"),
$html);
return $html;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11253"
}},{
"@type": "Question",
"name": "Wie kann ich Gleiche Höhe für Elemente umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Als JS Datei `sameheight.js` speichern und einbinden:
jQuery(document).ready(function() { sameheightbox(); });
jQuery(window).resize(function() { sameheightbox(); });
function sameheightbox() {
var highestBox = 0;
jQuery('.sameheight').each(function(){
if(jQuery(this).height() > highestBox) {
highestBox = jQuery(this).height();
}
});
jQuery('.sameheight').height(highestBox);
}
Einbinden z.B. mit:
add_action( 'wp_enqueue_scripts', 'wuk_sameheight', 5);
function wuk_sameheight() {
wp_enqueue_script( 'sameheight-js', get_stylesheet_directory_uri() . '/sameheight.js', array( 'jquery' ) );
}
Elemente welche die gleiche Höhe erhalten sollen dann die CSS Klasse sameheight geben.
", "url": "https://wuk.ch/tools/code-snippets/?open=11251" }},{ "@type": "Question", "name": "Wie kann ich Animierte GIF korrekt ausgeben umsetzen?", "acceptedAnswer": { "@type": "Answer", "text": "
add_filter('post_thumbnail_size','gif_alwaysfull',999,2);
function gif_alwaysfull($size, $postid) {
$thumb_low = get_the_post_thumbnail_url();
if (strpos($thumb_low, '.gif') === false) {
return $size;
} else {
return 'full';
}
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11249"
}},{
"@type": "Question",
"name": "Wie kann ich Author/Tag/Kategorie Archivseiten deaktivieren (WordPress) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
add_action('template_redirect', 'wuk_custom_removepage');
function wuk_custom_removepage() {
global $wp_query;
if( is_category() || is_tag() || is_date() || is_author() ) {
$wp_query->set_404();
}
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11234"
}},{
"@type": "Question",
"name": "Wie kann ich xmlrpc.php deaktivieren umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "add_filter( 'xmlrpc_enabled', '__return_false' );", "url": "https://wuk.ch/tools/code-snippets/?open=11232" }},{ "@type": "Question", "name": "Wie kann ich Automatische Updates aktivieren/deaktivieren (WordPress) umsetzen?", "acceptedAnswer": { "@type": "Answer", "text": "
Um alle Updates zu aktivieren:
add_filter('auto_update_core', '__return_true' );
add_filter('auto_update_plugin', '__return_true');
add_filter('auto_update_theme', '__return_true');
add_filter('auto_update_translation', '__return_true' );
Um alle Updates zu deaktivieren:
add_filter('auto_update_core', '__return_false' );
add_filter('auto_update_plugin', '__return_false');
add_filter('auto_update_theme', '__return_false');
add_filter('auto_update_translation', '__return_false' );
Natürlich lässt sich auch eine Kombination erstellen.
Diese Codes sollten im Child Theme oder einem Plugin untergebracht werden.
Bestellungen auf Rechnung bleiben normal immer auf „on hold\" hängen. Damit diese automatisch „Processing\" erhalten, muss folgender Code im Childtheme oder Plugin platziert werden:
add_action( 'woocommerce_thankyou', 'woocommerce_auto_processing_orders');
function woocommerce_auto_processing_orders( $order_id ) {
if(!$order_id) return;
$order = wc_get_order( $order_id );
if($order->has_status('on-hold')) { $order->update_status( 'processing' ); }
}
Dieser Code setzt alle Bestellungen automatisch auf processing. Wenn man will, kann man auch prüfen ob die Bestellung per „bacs\" gemacht wurde (Rechnung).
", "url": "https://wuk.ch/tools/code-snippets/?open=11379" }},{ "@type": "Question", "name": "Wie kann ich Mailreminder für Bewertung nach 14 Tagen (WooCommerce) umsetzen?", "acceptedAnswer": { "@type": "Answer", "text": "Es wird das Trusted Shop Template von Germanized missverwendet.
add_filter( 'woocommerce_order_data_store_cpt_get_orders_query', 'handle_custom_query_var', 10, 2 );
function handle_custom_query_var( $query, $query_vars ) {
if ($query_vars['remindersend'] == '0') {
$query['meta_query'][] = array(
'key' => '_reminder_email_sent',
'compare' => 'NOT EXISTS'
);
}
return $query;
}
if (!wp_next_scheduled( 'reminder_cron_hook' ) ) {
wp_schedule_event( strtotime('09:30:00'), 'daily', 'reminder_cron_hook' );
}
add_action( 'reminder_cron_hook', 'reminder_cron_function' );
function reminder_cron_function() {
$remindernachtagen = 14;
$bis = time() - ($remindernachtagen * 86400);
$von = $bis - (14 * 86400);
$args = array(
'status' => 'wc-completed',
'date_completed' => date("Y-m-d",$von).'...'.date("Y-m-d",$bis),
'return' => 'ids',
'remindersend' => '0'
);
$orders = wc_get_orders( $args );
$allmails = WC()->mailer()->emails;
$email = $allmails['WC_TS_Email_Customer_Trusted_Shops'];
foreach ($orders as $order_id) {
$email->trigger( $order_id );
$order = wc_get_order( $order_id );
$order->update_meta_data( '_reminder_email_sent', '1' );
$order->save();
}
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11228"
}},{
"@type": "Question",
"name": "Wie kann ich Nur kostenlose Lieferung wenn möglich (WooCommerce) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Wenn mehrere Versandmöglichkeiten möglich sind, aber kostenloser Versand verfügbar ist, wird alles entfernt und automatisch kostenlos verschickt:
add_filter( 'woocommerce_package_rates', 'wuk_hide_shipping_when_free_is_available', 100 );
function wuk_hide_shipping_when_free_is_available( $rates ) {
$free = array();
foreach ( $rates as $rate_id => $rate ) {
if ( 'free_shipping' === $rate->method_id ) {
$free[ $rate_id ] = $rate;
break;
}
}
return ! empty( $free ) ? $free : $rates;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11226"
}},{
"@type": "Question",
"name": "Wie kann ich Strasse ohne Hausnummer Warnung (WooCommerce) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Wenn keineHausnummer bei der Adresszeile eingegeben wird,wird eine einmalige Warnung ausgegeben um dies zu korrigieren.
add_action('woocommerce_checkout_process', 'address_field_validation', 10, 0);
function address_field_validation() {
if ($_POST['billing_address_1'] && ! preg_match( '/[0-9]+/', $_POST['billing_address_1'] ) && (!isset($_SESSION['oncehausnummer']) OR $_SESSION['oncehausnummer'] <= (time()-120))) {
$_SESSION['oncehausnummer'] = time();
throw new Exception( sprintf( __( 'Bei der Strasse wurde keine Hausnummer gefunden. Bitte geben Sie diese an, falls Sie eine besitzen. Besitzen Sie keine, können Sie einfach nochmals zu Schritt 2 weitergehen.', 'woocommerce' ) ) );
}
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11223"
}},{
"@type": "Question",
"name": "Wie kann ich Checkout Felder entfernen die ungewünscht sind und Anpassungen (WooCommerce) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Entfernt Kanton und 2te Adresszeile:
add_filter( 'woocommerce_default_address_fields' , 'wuk_remove_checkout_fields2' );
function wuk_remove_checkout_fields2( $fields ) {
unset($fields['address_2']);
unset($fields['state']);
$fields['postcode']['class'] = array('address-field','form-row-first');
$fields['city']['class'] = array('address-field','form-row-last');
return $fields;
}
add_filter( 'woocommerce_checkout_fields' , 'wuk_remove_checkout_fields' );
function wuk_remove_checkout_fields( $fields ) {
unset($fields['billing']['billing_address_2']);
unset($fields['billing']['billing_state']);
unset($fields['shipping']['shipping_address_2']);
unset($fields['shipping']['shipping_state']);
$fields['billing']['billing_postcode']['class'] = array('form-row-first');
$fields['billing']['billing_city']['class']= array('form-row-last');
$fields['shipping']['shipping_postcode']['class'] = array('form-row-first');
$fields['shipping']['shipping_city']['class']= array('form-row-last');
return $fields;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11221"
}},{
"@type": "Question",
"name": "Wie kann ich Autoresponder per Code abschalten (Enfold) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
add_filter( 'avia_contact_form_args', 'no_enfold_autoresponder',80);
function no_enfold_autoresponder($form_args) {
$form_args['autoresponder'] = false;
$form_args['autoresponder_subject'] = '';
$form_args['autoresponder_email'] = '';
$form_args['autoresponder_reply_to'] = '';
return $form_args;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11312"
}},{
"@type": "Question",
"name": "Wie kann ich Visueller Editor von Enfold bei Custom Post Types aktivieren umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
add_filter('avf_alb_supported_post_types', 'wuk_visualeditor_for_post_types', 10, 1);
function wuk_visualeditor_for_post_types( array $supported_post_types ) {
$supported_post_types[] = 'dein-post-type';
return $supported_post_types;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11309"
}},{
"@type": "Question",
"name": "Wie kann ich CPT in allen Enfold Elementen nutzbar umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Im Childtheme einfügen:
add_theme_support('add_avia_builder_post_type_option');
add_theme_support('avia_template_builder_custom_post_type_grid');
",
"url": "https://wuk.ch/tools/code-snippets/?open=11308"
}},{
"@type": "Question",
"name": "Wie kann ich Enfold Formular Conversion Tracking umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Beispiel für Google Ads:
add_filter('avf_contact_form_submit_button_attr','avia_add_submit_attributes_to_cf', 10, 3);
function avia_add_submit_attributes_to_cf($att, $formID, $form_params){
$att = "onclick=\\"gtag('event', 'conversion', {'send_to': 'AW-942730802/sddUCP_7tGYQstzDwQM'});\\"";
return $att;
}
Beispiel für Linkedin:
add_filter( 'avia_contact_form_args', 'change_enfold_success_msg');
function change_enfold_success_msg($form_args, $post_id='') {
$form_args['success'] = str_replace(
"",
'',
$form_args['success']
);
return $form_args;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11306"
}},{
"@type": "Question",
"name": "Wie kann ich Menüzeile früher umbrechen (Enfold) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
@media only screen and (max-width: 1350px) {
#top #header .av-main-nav > li > a { font-size: 18px !important; }
}
@media only screen and (max-width:1270px) {
#top #header .av-main-nav > li > a { font-size: 16px !important; }
}
@media only screen and (max-width:1200px) {
#avia-menu .menu-item { display: none; }
#avia-menu .av-burger-menu-main { display: block; }
#avia-menu { width:auto !important; float:right: !important; }
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11304"
}},{
"@type": "Question",
"name": "Wie kann ich Icons in Trennzeilen grösser machen (Enfold) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
.av-seperator-icon {
display: inline-block;
vertical-align: middle;
font-size: 40px;
line-height: 50px;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11302"
}},{
"@type": "Question",
"name": "Wie kann ich Enfold Topbar höher machen umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
#header_meta, #header_meta .container {
min-height: 36px;
}
#header_meta .sub_menu {
font-size: 16px;
}
#header_meta .sub_menu li {
line-height: 16px;
}
#header_meta .phone-info {
font-size: 16px;
padding: 9px 0 0 0;
font-weight: normal;
}
#top #wrap_all .social_bookmarks {
margin-top: 2px;
}
#header_meta .sub_menu>ul>li>a, .sub_menu>div>ul>li>a {
font-weight: normal;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11298"
}},{
"@type": "Question",
"name": "Wie kann ich Enfold Gallerie kein Hover Effekt umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
#top .avia-gallery .avia-gallery-thumb a:hover {
opacity: 1;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11296"
}},{
"@type": "Question",
"name": "Wie kann ich Sprachleiste mit DE | EN statt Flaggen (WPML) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
.avia_wpml_language_switch li .language_flag {
display: none;
}
.avia_wpml_language_switch li .language_code {
display: block;
text-transform: uppercase;
}
.avia_wpml_language_switch {top: 0px; padding: 0; }
#top ul.avia_wpml_language_switch li {
padding: 0 10px !important;
border-right-style: solid !important;
border-right-width: 1px !important;
}
#top ul.avia_wpml_language_switch li:last-child {
padding: 0 10px !important;
border-right-style: none !important;
border-right-width: 0 !important;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11294"
}},{
"@type": "Question",
"name": "Wie kann ich Enfold Untermenü breiter machen umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
.av-main-nav ul { width: 308px; }
",
"url": "https://wuk.ch/tools/code-snippets/?open=11292"
}},{
"@type": "Question",
"name": "Wie kann ich Ampersand (&) normal machen umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
.special_amp {
color: inherit !important;
font-family: inherit;
font-size: inherit;
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11290"
}},{
"@type": "Question",
"name": "Wie kann ich Conversion Tracking (Contact Form 7) umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
function gtag_report_conversion(url) {
var callback = function () {
if (typeof(url) != 'undefined') { window.location = url; }
};
gtag('event', 'conversion', { 'send_to': 'AW-.../...', 'transaction_id': '', 'event_callback': callback });
return false;
}
document.addEventListener( 'wpcf7mailsent', function( event ) {
gtag_report_conversion('');
}, false );
",
"url": "https://wuk.ch/tools/code-snippets/?open=11277"
}},{
"@type": "Question",
"name": "Wie kann ich Rechte Maustaste deaktivieren umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
if (document.addEventListener) {
document.addEventListener('contextmenu', function(e) {
e.preventDefault();
}, false);
} else {
document.attachEvent('oncontextmenu', function() {
window.event.returnValue = false;
});
}
",
"url": "https://wuk.ch/tools/code-snippets/?open=11273"
}},{
"@type": "Question",
"name": "Wie kann ich Firefox unscharfe Bilder wenn verkleinert Korrektur umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "
img { image-rendering: auto; }
",
"url": "https://wuk.ch/tools/code-snippets/?open=11271"
}},{
"@type": "Question",
"name": "Wie kann ich Silbentrennung per CSS umsetzen?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Web Silbentrennung aktivieren:
@supports (hyphens: auto) {
body {
hyphens: auto;
-webkit-hyphens: auto;
-webkit-hyphenate-limit-chars: auto 3;
-webkit-hyphenate-limit-lines: 4;
-ms-hyphens: auto;
-ms-hyphenate-limit-chars: auto 3;
-ms-hyphenate-limit-lines: 4;
}
}
Nicht alle Geräte unterstützen dies.
", "url": "https://wuk.ch/tools/code-snippets/?open=11269" }} ] }


Wenn man wuk.ch offen hat und ein anderen Tab öffnet, dann ändert der Tab den Titel automatisch hin und her und generiert wo Aufmerksamkeit zum Zurückommen. So können USPs oder Botschaften eindrücklich übermittelt werden.
Dazu ist nur ein Javascript nötig. Dieses Script nutzt jQuery.
var oldtitle; var oldtitleindex; $(window).on("blur focus load", function(e) { if (!oldtitle) { oldtitle = document.title; } var prevType = $(this).data("prevType"); if (prevType != e.type) { switch (e.type) { case "blur": titleTimerId = setInterval(changetitle, 2500); break; case "focus": if (typeof(titleTimerId) !== 'undefined') { clearInterval(titleTimerId); } document.title = oldtitle; break; } } $(this).data("prevType", e.type); }); function changetitle() { if (oldtitleindex != 1) { document.title = "✔WordPress ✔Design ✔SEO"; oldtitleindex = 1; } else { document.title = oldtitle; oldtitleindex = 0; } }