Hoe maak ik een custom post type in wordpress met php

Je wil graag een custom post type toevoegen aan je wordpress website? Er zijn verschillende plugins die je kunnen helpen uiteraard, maar elke plugin vertraagd je website een beetje. De beste manier is en blijft je custom post type zelf te coderen in php.

Ben je geen programmeur? Geen nood, zo moeilijk is het niet. We leggen je het hieronder graag uit!

Voeg een child theme toe

Een “child theme” is een wordpress thema dat de functioniteit en styling van een ander thema erft. Dat thema noemen we het “parent theme”.

Child themes zijn de manier om code toe te voegen aan een bestaand wordpress thema. Wanneer een thema een update ondergaat, wordt namelijk elke custom code die toegevoegd is overschreven.

Een “child theme” laat je toe om custom code toe te voegen en toch je thema te kunnen updaten en genieten van de extra beveiliging die deze updates met zich meebrengen.

De basics

Je wil een custom post type maken voor testimonials? Elke post in dit custom post type is een aparte testimonial? Dat kan.

Ga in je wordpress naar “weergave” en klik vervolgens op “Thema bestand editor”. Plak onderstaande code in de functions.php van je child theme.

Je hebt nu een custom post type in zijn simpelste vorm. Het zal niet publiek zijn, niet in de admin tonen, etc… etc… Wat doet die code dan wel? Eerst maken we een nieuwe functie aan genaamd “custom_post_type”. We voegen een array toe genaamd $args waar we later een heleboel informatie gaan aan toevoegen over onze custom post type. Vervolgens registreren we onze nieuwe custom post type met de attributen die we in $args gaan toevoegen. En ten laatste voeren we onze code ook effectief uit.

In de volgende stap gaan we de $args array verder aanpassen met de meest voorkomende opties.

function custom_post_type() {
$args = array();
register_post_type( ‘Testimonials’, $args );
}
add_action( ‘init’, ‘custom_post_type’, 0 );

Meer uitgebreide code

Eerst gaan we een extra array toevoegen genaamd $labels. Hier gaan we zorgen voor de juiste benamingen van je custom post type. Hierdoor is alles mooi begrijpbaar tijdens het bewerken van je website en vind je overal de benaming van je custom post type terug.

Vervolgens gaan we de $args array uitbreiden. De belangrijkste items leggen we hieronder even uit:

  • Labels: Definieer de verschillende labels die het custom post type zal hebben.
  • Description: Een korte uitleg over onze custom post type en waarom we het gaan gebruiken.
  • Public: Als je deze optie op ’true’ zet gebeuren er heel wat zaken, allemaal belangrijk voor de zichtbaarheid van je custom post type.
  • Supports: Deze optie geeft je de standaard wordpress controle items zoals een titel, een thumbnail en versiegeschiedenis. Als je bijvoorbeeld comments wil toevoegen kan je dit hier aanpassen.
  • Menu_position: Geeft de positie weer in het wordpress menu in de backend. Het cijfer start aan de bovenkant. Bij een “1” staat je custom post type helemaal bovenaan. Hoe hoger het getal, hoe lager in het menu.

Ga in je wordpress naar “weergave” en klik vervolgens op “Thema bestand editor”. Plak onderstaande code in de functions.php van je child theme.

function custom_post_type() {

$labels = array(
‘name’ => _x( ‘Testimonials’, ‘Post Type General Name’ ),
‘singular_name’ => _x( ‘Testimonial’, ‘Post Type Singular Name’ ),
‘menu_name’ => __( ‘Testimonials’ ),
‘name_admin_bar’ => __( ‘Testimonials’ ),
‘archives’ => __( ‘Testimonial Archives’ ),
‘attributes’ => __( ‘Item Attributes’ ),
‘parent_item_colon’ => __( ‘Parent Item:’ ),
‘all_items’ => __( ‘All Testimonials’ ),
‘add_new_item’ => __( ‘Add New Testimonial’ ),
‘add_new’ => __( ‘Add New Testimonial’ ),
‘new_item’ => __( ‘New Testimonial’ ),
‘edit_item’ => __( ‘Edit Testimonial’ ),
‘update_item’ => __( ‘Update Testimonial’ ),
‘view_item’ => __( ‘View Testimonial’ ),
‘view_items’ => __( ‘View Testimonials’ ),
‘search_items’ => __( ‘Search Testimonial’ ),
‘not_found’ => __( ‘No Testimonial Found’ ),
‘not_found_in_trash’ => __( ‘No Testimonial Found in Trash’ ),
‘featured_image’ => __( ‘Testimonial Featured Image’ ),
‘set_featured_image’ => __( ‘Set featured image’ ),
‘remove_featured_image’ => __( ‘Remove featured image’ ),
‘use_featured_image’ => __( ‘Use as featured image’ ),
‘insert_into_item’ => __( ‘Insert into item’ ),
‘uploaded_to_this_item’ => __( ‘Uploaded to this item’ ),
‘items_list’ => __( ‘Items list’ ),
‘items_list_navigation’ => __( ‘Items list navigation’ ),
‘filter_items_list’ => __( ‘Filter items list’ ),
);

$args = array(
‘label’ => __( ‘Testimonial’ ),
‘description’ => __( ‘Post Type for Testimonials’ ),
‘labels’ => $labels,
‘supports’ => array( ’title’, ’thumbnail’, ‘revisions’, ‘custom-fields’, ‘page-attributes’ ),
’taxonomies’ => array( ),
‘hierarchical’ => false,
‘public’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘menu_position’ => 5,
‘menu_icon’ => ‘dashicons-testimonial’,
‘show_in_admin_bar’ => true,
‘show_in_nav_menus’ => true,
‘can_export’ => true,
‘has_archive’ => ’testimonials’,
‘exclude_from_search’ => true,
‘publicly_queryable’ => true,
‘capability_type’ => ‘page’,
);
register_post_type( ’testimonials’, $args );

}
add_action( ‘init’, ‘custom_post_type’, 0 );

Verder lezen?

mail us

Hulp nodig met
Web Development?

Watson Web Studio helpt
je graag verder!