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 zoekfunctie in WordPress uitschakelen

De zoekfunctie van WordPress is een standaard functionaliteit, en wordt door de meeste thema’s wel ondersteund. Wanneer je website geen gebruik maakt van deze zoekfunctie kan je deze het beste helemaal uitschakelen.

Onderstaande snippet zorgt ervoor dat de complete zoek-functionaliteit op je website verdwijnt.

Het uitschakelen van de zoekfunctie kan handig zijn wanneer je server waar je website op draait bijvoorbeeld een beperkte rekencapaciteit heeft, en je toch geen inhoud op je website hebt welke doorzocht moet kunnen worden.

/**
 * Disable WordPress search.
 */
add_action( 'parse_query', 'wpsimpel_filter_query' );
add_filter( 'get_search_form', create_function( '$a', "return null;" ) );
function wpsimpel_filter_query( $query, $error = true ) {

	if ( is_search() ) {
		$query->is_search = false;
		$query->query_vars[s] = false;
		$query->query[s] = false;
		// to error
		if ( $error == true )
		$query->is_404 = true;
	}
}

2. Browserdetectie

Wil je verschillende stylesheets in je thema gebruiken voor verschillende browsers? Met onderstaande snippet kan je website de browser van de bezoeker herkennen, en wordt er een extra class aan je <body> tag toegevoegd.

/**
 * Detect a visitors browser and add an extra body class.
 */
add_filter('body_class','wpsimpel_browser_body_class');

function wpsimpel_browser_body_class($classes) {

	global $is_lynx, $is_gecko, $is_IE, $is_opera, $is_NS4, $is_safari, $is_chrome, $is_iphone;

	if($is_lynx) $classes[] = 'lynx';
	elseif($is_gecko) $classes[] = 'gecko';
	elseif($is_opera) $classes[] = 'opera';
	elseif($is_NS4) $classes[] = 'ns4';
	elseif($is_safari) $classes[] = 'safari';
	elseif($is_chrome) $classes[] = 'chrome';
	elseif($is_IE) $classes[] = 'ie';
	else $classes[] = 'unknown';
	if($is_iphone) $classes[] = 'iphone';

	return $classes;
}

3. Een eigen WP Admin dashboard widget toevoegen

Wil je een eigen widget toevoegen aan het WordPress dashboard, bijvoorbeeld om je klanten van extra informatie te voorzien? Gebruik dan onderstaande snippet.

/**
 * Add a custom WP Admin dashboard widget.
 */
add_action('wp_dashboard_setup', 'wpsimpel_dashboard_widgets');
function wpsimpel_dashboard_widgets() {

	global $wp_meta_boxes;
	wp_add_dashboard_widget('custom_help_widget', 'Client Support', 'custom_dashboard_help');
}

function custom_dashboard_help() {
	echo __( '<p>Welcome to wpsimpel! Need help? Contact the developer <a href="mailto:hallo@wpsimpel.nl">here</a>. For WordPress Tutorials visit: <a href="http://www.wpsimpel.nl" target="_blank">wpsimpel.nl</a></p>', 'your-text-domain' );
}

4. WordPress widgets verbergen

Met onderstaande snippet verwijder je widgets die je kan vinden bij Weergave > Widgets. Onderstaand voorbeeld verwijdert de standaard ‘kalender’, ‘zoekbalk’ en ‘recente reacties’ widgets.

/**
 * Hide WordPress widgets.
 */
function unregister_default_wp_widgets() {
	unregister_widget('WP_Widget_Calendar');
	unregister_widget('WP_Widget_Search');
	unregister_widget('WP_Widget_Recent_Comments');
}
add_action('widgets_init', 'unregister_default_wp_widgets', 1);

5. Breadcrumbs maken zonder plugin

Gebruik je de plugin Yoast SEO, dan zit hier standaard een functionaliteit in welke breadcrumbs op je website plaatst. Wil je geen gebruik maken van een plugin voor breadcrumbs, dan kan je met onderstaande functie eigen breadcrumbs toevoegen aan je website.

/**
 * Add custom breadcrumbs to your website.
 */
function wpsimpel_breadcrumbs() {

	echo '<ul id="crumbs">';

	if (!is_home()) {
		echo '<li><a href="';
		echo get_option('home');
		echo '">';
		echo 'Home';
		echo "</a></li>";
	
	if (is_category() || is_single()) {
		echo '<li>';
		the_category(' </li><li> ');
	
	if (is_single()) {
		echo "</li><li>";
		the_title();
		echo '</li>';
	
	} 
	
	elseif (is_page()) {
		echo '<li>';
		echo the_title();
		echo '</li>';
	}

	elseif (is_tag()) {single_tag_title();}

	elseif (is_day()) {echo"<li>Archive for "; the_time('F jS, Y'); echo'</li>';}

	elseif (is_month()) {echo"<li>Archive for "; the_time('F, Y'); echo'</li>';}

	elseif (is_year()) {echo"<li>Archive for "; the_time('Y'); echo'</li>';}

	elseif (is_author()) {echo"<li>Author Archive"; echo'</li>';}

	elseif (isset($_GET['paged']) && !empty($_GET['paged'])) {echo "<li>Blog Archives"; echo'</li>';}

	elseif (is_search()) {echo"<li>Search Results"; echo'</li>';}
	
	echo '</ul>';
}

Voeg vervolgens onderstaande template tag toe aan header.php in je thema.

<?php wpsimpel_breadcrumbs(); ?>

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?