Laden...

Hoe voeg je een Custom Post Type toe binnen WordPress

Tim van Iersel 21 februari 2020
Custom Post Type toevoegen binnen WordPress

Een eigen Custom Post Type toevoegen binnen WordPress

Wil je naast blog berichten ook nog een extra post type zoals vacatures of portfolio? Dan zit je met Custom Post Types goed.

Door gebruik te maken van Custom post types kun je speciale templates instellen die alleen voor dat type berichten wordt gebruikt.

Denk hierbij aan een andere layout of net wat andere kleuren dan standaard blog berichten. Ook de url structuur is hierbij net weer anders dan bij de standaard blogs.

Aanmaken van een Custom Post Type

Binnen WordPress is er de functie register_post_type(). Een functie waaraan je de naam van je post type moet doorgeven (van maximaal 20 karakters) en optioneel de argumenten waar het post type aan moet voldoen.

In de simpelste vorm zou je dus een post type kunnen maken voor boeken door de volgende code te gebruiken:

function plugin_nl_setup_plugins_post_type(){
    register_post_type('plugins');
}
add_action('init', 'plugin_nl_setup_plugins_post_type');

Dit zou een vrij leeg post type zijn zonder al teveel functies. Het is beter om argumenten zoals labels mee te geven.

Zo kun je zelf bepalen wat voor tekst er staat voor het toevoegen van nieuwe bericht types, of de berichten met de zoekfunctie op te zoeken zijn en of ze archief pagina’s hebben.

Custom Post Types gebruiken voor het maken van sliders

Voor een maatwerk plugin hebben we bij Plugin.nl bijvoorbeeld voor een slider Custom Post Type gebruikt. Op deze manier konden nieuwe slides eenvoudig als featured image of video van een bericht worden toegevoegd.

De code was ongeveer als volgt:

function pluginnl_custom_post_slider_init() {
    $labels = array(
        'name' => 'Pluginnl Slider',
	'singular_name' => 'Pluginnl Slider',
	'add_new' => 'Add Pluginnl Slider',
	'add_new_item' => 'Add New Slider',
	'edit_item' => 'Edit Pluginnl Slider',
	'new_item' => 'New Pluginnl Slider',
	'all_items' => 'All Pluginnl Sliders',
	'view_item' => 'View Pluginnl Slider',
	'search_items' => 'Search Pluginnl Sliders',
	'not_found' =>  'No Pluginnl Slider found',
	'not_found_in_trash' => 'No Pluginnl Slider found in Trash',
	'parent_item_colon' => '',
	'menu_name' => 'Pluginnl Sliders'
    );

    $args = array(
	'labels' => $labels,
	'description'   => 'Holds our Pluginnl Slider post specific data',
	'public' => true,
	'publicly_queryable' => true,
	'show_ui' => true,
        'show_in_nav_menus' => false,
        'show_in_admin_bar' => false,
	'show_in_menu' => true,
	'query_var' => true,
	'rewrite' => array( 'slug' => 'pluginnl-slider' ),
	'capability_type' => 'post',
	'has_archive' => false,
	'hierarchical' => false,
	'menu_position' => 5,
	'exclude_from_search' => true,
	'can_export' => true,
	'supports' => array( 'title', 'thumbnail', 'page-attributes', 'custom-fields')
    );
    register_post_type( 'pluginnl-slider', $args );
}
add_action('init', 'pluginnl_custom_post_slider_init')

Hulp nodig met het ontwikkelen van een functionaliteit binnen WordPress? Neem dan gerust contact ons op via de contact pagina of mail naar tim@plugin.nl.

Tim van Iersel 21 februari 2020

Tim is eigenaar van Plugin.nl en van het internet bureau Websitescanner. Sinds 2012 actief bezig met WordPress.

Reacties