Wordpress: categorieën en tags toevoegen aan Custom Post Types

E-mailadres Afdrukken PDF

Ik heb al meerdere keren de volgende vraag gekregen: "Ik heb een custom post type aangemaakt, maar ik kan geen categorieën en tags toevoegen aan de posts." Daar is een eenvoudige oplossing voor. Wanneer je een custom post type aanmaakt in Wordpress en je wilt binnen die post types gebruik maken van categorieën en tags, dan dien je de taxonomieën toe te voegen aan de functie register_post_type().

Het volgende stukje code doet de truc:

'taxonomies' => array('category', 'post_tag')

In totaal ziet de functie register_post_type() er dan als volgt uit (ik gebruik hier het post type 'demo'):

add_action('init', 'demo_register_post_type');

function demo_register_post_type() {
 register_post_type('demo', array(
 'labels' => array(
 'name' => 'Demos',
 'singular_name' => 'Demo',
 'add_new' => 'Add new demo',
 'edit_item' => 'Edit demo',
 'new_item' => 'New demo',
 'view_item' => 'View demo',
 'search_items' => 'Search demos',
 'not_found' => 'No demos found',
 'not_found_in_trash' => 'No demos found in Trash'
 ),
 'public' => true,
 'supports' => array(
 'title',
 'excerpt'
 ),
 'taxonomies' => array('category', 'post_tag') // HIER gebeurt het!!
 ));
}

De string 'taxonomies' is een array van standaard geregistreerde taxonomieën waar 'categorie' en 'post_tag' reeds geregistreerd deel van uitmaken. Het registreren van deze taxonomieën hoef je dus niet nogmaals te doen.

Echter, wanneer je al een custom post type hebt aangemaakt en je functions.php is zo groot dat je niet wilt zoeken in de code om deze regel toe te voegen, dan kun je de functie register_taxonomy_for_object_type() als volgt los gebruiken (voeg de onderstaande code helemaal onderaan de functions.php toe):

add_action('init', 'demo_add_default_boxes');

function demo_add_default_boxes() {
 register_taxonomy_for_object_type('category', 'demo');
 register_taxonomy_for_object_type('post_tag', 'demo');
}

Houdt er bij dit laatste rekening mee dat dit allemaal dient te gebeuren binnen de "init action hook".

Met dank aan Deluxe Blog Tips.

Plaats reactie


Beveiligingscode
Vernieuwen

Klanten Login

Neem Contact Op

070 - 415 13 54

Ma. t/m Vrij. van 09:00 - 17:30

Stuur een Email