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.

Lees hier hoe je code snippets op de juiste manier toevoegt aan je website.
Lees hier hoe je een site specifieke plugin maakt.

1. De lengte van excerpts (‘samenvattingen’) aanpassen

De ‘excerpt’ functie in WordPress laat op archiefpagina’s standaard de eerste 55 woorden van een post zien. Wil je de lengte hiervan aanpassen, dan kan je dat doen met onderstaande code snippet.

/**
 * Edit the excerpt word count.
 */
add_filter( 'excerpt_length', function( $length ) {
	return 20; // Change this value to whatever you like
} );

2. Gekleurde admin table achtergronden voor posts

In het post overzicht in de WordPress admin is van een afstandje visueel gezien niet echt onderscheid te maken in welke statussen (Concept, Wacht op goedkeuring, Gepubliceerd, Ingepland en Privé) je posts hebben. Wil je in de WordPress admin de posts beter van elkaar kunnen onderscheiden aan de hand van hun status, dan kan je ze met onderstaande code snippet voorzien van een achtergrondkleur.

/**
 * Color admin table bg by post status.
 */
add_action('admin_footer','posts_status_color');

function posts_status_color(){ ?>
	<style>
		.status-draft{ background: #FCE3F2 !important; }
		.status-pending{ background: #87C5D6 !important; }
		.status-publish{ /* no background keep wp alternating colors */ }
		.status-future{ background: #C6EBF5 !important; }
		.status-private{ background:#F2D46F; }
	</style>
<?php
}

3. Automatische WordPress core-updates uitschakelen

De ontwikkelaars van WordPress hebben je het onderhouden van je website iets makkelijker gemaakt door kleine WordPress updates automatisch uit te voeren. Wil je dit toch liever zelf in de hand hebben, plaats dan onderstaande code snippet in het wp-config.php bestand in de root van je WordPress installatie, net boven de regel /* That's all, stop editing! Happy publishing. */.

// Disable automatic WP core updates
define('WP_AUTO_UPDATE_CORE', false);

4. Een uitgelichte afbeelding verplichten bij een post

Wanneer je op je blog alle post verplicht een uitgelichte afbeelding wilt laten hebben kan je m. Dit kan bijvoorbeeld handig zijn als je een wat groter blog met meerdere auteurs. Men kan simpelweg wel eens vergeten een afbeelding te uploaden.

Met onderstaande code snippet kan de auteur het artikel niet ter goedkeuring indienen, updaten of publiceren zonder dat de post een uitgelichte afbeelding heeft. De auteur krijgt dan een foutmelding te zien, welke hem er er aan herinnert een uitgelichte afbeelding in te stellen.

/**
 * Make featured images required for posts.
 */
add_action( 'save_post', 'wpsimpel_check_thumbnail' );
add_action( 'admin_notices', 'wpsimpel_thumbnail_error' );

// Check if post has a featured image before update
function wpsimpel_check_thumbnail($post_id) {
    
	// change to any custom post type
	if(get_post_type($post_id) != 'post')
        	return;
    
	if ( !has_post_thumbnail( $post_id ) ) {
		// set a transient to show the users an admin message
		set_transient( "has_post_thumbnail", "no" );
		// unhook this function so it doesn't loop infinitely
 		remove_action('save_post', 'wpds_check_thumbnail');
 		// update the post set it to draft
		wp_update_post(array('ID' => $post_id, 'post_status' => 'draft'));
 		add_action('save_post', 'wpds_check_thumbnail');
	} else {
		delete_transient( "has_post_thumbnail" );
	}
}

// Show error if post doesn't have a featured image on update
function wpsimpel_thumbnail_error() {
	// check if the transient is set, and display the error message
	if ( get_transient( "has_post_thumbnail" ) == "no" ) {
		echo "<div id='message' class='error'><p><strong>You must select Featured Image. Your Post is saved but it can not be published.</strong></p></div>";
		delete_transient( "has_post_thumbnail" );
	}
}

5. De permalink van de zoekresultaten pagina aanpassen

De url van de zoekresultaten pagina is met de permalink-instellingen in de WordPress admin helaas niet zomaar aan te passen. Wanneer je een zoekopdracht in een zoekbalk op een WordPress website intypt kom je op een pagina terecht, welke achter de domeinnaam de structuur /?s=jezoekopdracht heeft.

Je kan het met onderstaande code snippet aanpassen naar een iets toegankelijkere structuur, bijvoorbeeld /zoeken/jezoekopdracht.

/**
 * Change the search results page permalink.
 */
function wpsimpel_change_search_url_rewrite() {

	if ( is_search() && ! empty( $_GET['s'] ) ) {
		wp_redirect( home_url( "/zoeken/" ) . urlencode( get_query_var( 's' ) ) );
		exit();
	}	
}
add_action( 'template_redirect', 'wpsimpel_change_search_url_rewrite' );

Beoordeel deze post:

Gemiddeld: 4 / 5. Aantal beoordelingen: 1

Nog geen beoordelingen

Whoops! 😔

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