Vaak bevatten WordPress plugins veel meer functionaliteiten dan je eigenlijk nodig hebt en dit kan je website uiteindelijk langzamer maken. Hier vind je 5 handige code snippets voor functionaliteiten waar je geen plugin voor nodig hebt.

Onderstaande code snippets kan je (tenzij anders vermeld) in het functions.php bestand van je thema plaatsen, of in een site-specifieke plugin.

1. De auteur permalink structuur aanpassen

Standaard laat WordPress de auteur archief pagina’s zien met een permalinkstructuur als jewebsite.nl/auteur/naam. Hoewel het nergens in de instellingen van WordPress staat kan je deze permalinkstructuur aanpassen naar wat je wil.

Met onderstaande snippet vervang je auteur door profiel, en wordt de permalinkstructuur dus jewebsite.nl/profiel/naam.

/**
 * Change the author permalink.
 */
add_action('init', 'wpsimpel_change_author_permalink');

function wpsimpel_change_author_permalink() {

	global $wp_rewrite;
	
	$author_slug = 'profiel'; // change slug name
	$wp_rewrite->author_base = $author_slug;
}

2. “Add to cart” tekst aanpassen wanner product al in winkelmand aanwezig is

Met onderstaande codesnippet(s) vervang je de WooCommerce “Add to cart” / “In winkelmand” tekst op de buttons wanneer je het product al in de winkelmand hebt zitten.

/**
 * Change the add to cart text on single product pages.
 */
add_filter( 'woocommerce_product_single_add_to_cart_text', 'wpsimpel_custom_cart_button_text' );

function wpsimpel_custom_cart_button_text() {

	global $woocommerce;
	
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
	
		if( get_the_ID() == $_product->id ) {
			return __('Already in cart - Add Again?', 'woocommerce'); 
		}
	}
	// If product is not in cart yet, show normal text	
	return __('Add to cart', 'woocommerce');
}

/**
 * Change the add to cart text on product archive pages.
 */
add_filter( 'add_to_cart_text', 'woo_archive_custom_cart_button_text' );

function woo_archive_custom_cart_button_text() {

	global $woocommerce;
	
	foreach($woocommerce->cart->get_cart() as $cart_item_key => $values ) {
		$_product = $values['data'];
	
		if( get_the_ID() == $_product->id ) {
			return __('Already in cart', 'woocommerce');
		}
	}
	// If product is not in cart yet, show normal text	
	return __('Add to cart', 'woocommerce');
}

3. Shortcodes in tekstwidgets toestaan

Standaard laat WordPress het niet toe dat je shortcodes in tekstwidgets kan gebruiken. Met onderstaande filter los je dit probleem op en kan je gewoon shortcodes aan tekstwidgets toevoegen.

/**
 * Enable shortcodes in text widgets.
 */
add_filter( 'widget_text', 'do_shortcode' );

4. SVG uploads toestaan

Wegens veiligheidsredenen staat WordPress niet toe dat er SVG-bestanden (voor bijvoorbeeld logo’s, iconen of vectortekeningen) kunnen worden geüpload naar de mediabibliotheek. Een SVG-bestand is namelijk geen ‘platte’ afbeelding zoals een .jpg of .png, maar SVG bestaat uit code. Dat kan een plek voor hackers en kwaadwillenden zijn om code te verstoppen in een SVG afbeelding waarmee je site gehackt zou kunnen worden.

Wil je toch echt SVG-bestanden kunnen uploaden, dan kan je met onderstaande functie toestaan dat enkel gebruikers met de rol Administrator SVG-bestanden kunnen uploaden.

/**
 * Enable SVG upload.
 */
add_filter('upload_mimes', 'wpsimpel_enable_svg_upload' );

function wpsimpel_enable_svg_upload( $mimes ) {
	
	//Only allow SVG upload by admins
	if ( !current_user_can( 'administrator' ) ) {
		return $mimes;
	}
	$mimes['svg'] = 'image/svg+xml';
	$mimes['svgz'] = 'image/svg+xml';
	return $mimes;
}

5. jQuery Migrate verwijderen

Als je wel eens het console (ontwikkelaarstool in browsers) hebt geopend op je WordPress website, dan zal je vast de volgende regel wel eens zijn opgevallen: JQMIGRATE: Migrate is installed, version 1.4.1.

jQuery migrate uitschakelen in WordPress

jQuery Migrate voegt ondersteuning aan je website toe voor oudere versies van de veelgebruikte JavaScript-bibliotheek jQuery. Dit is voornamelijk van toepassing wanneer er oudere thema’s gebruikt worden. Ontwikkel je zelf WordPress thema’s, of gebruik je een modern en up-to-date thema dan heb je jQuery Migrate in de meeste gevallen eigenlijk niet meer nodig. Door het te verwijderen van je website maak je je website bovendien ook weer een stukje sneller.

Met onderstaande snippet verwijder je jQuery Migrate van je website. Bekijk na het toevoegen van de snippet aan je website nog wel even een aantal pagina’s of je website nog correct werkt.

/**
 * Remove jQuery Migrate.
 */
function wpsimpel_remove_jquery_migrate( $scripts ) {

	if ( !is_admin() && !empty( $scripts->registered['jquery'] ) ) {
		$scripts->registered['jquery']->deps = array_diff( $scripts->registered['jquery']->deps, ['jquery-migrate'] );
	}
}

add_action('wp_default_scripts', 'wpsimpel_remove_jquery_migrate');

Beoordeel deze post:

Gemiddeld: 0 / 5. Aantal beoordelingen: 0

Nog geen beoordelingen

Whoops! 😔

Zou je ons willen laten weten hoe we (deze post) kunnen verbeteren?