Creare un custom post type è uno dei primi ostacoli in cui possiamo imbatterci quando decidiamo di creare un tema customizzato. I Custom Post Type ti permettono di ottimizzare la struttura del sito dedicando un area specifica per ogni prodotto/servizio/settore.
Ma non dilunghiamoci troppo e procediamo con il codice da utilizzare.
Il codice che troverete qui sotto dovrà essere inserita all’interno del file functions.php del vostro tema modificando la stringa theme_name con il nome del vostro tema.
function custom_service() {
$labels = array(
'name' => _x( 'Servizi', 'Post Type General Name', 'theme_name' ),
'singular_name' => _x( 'Servizio', 'Post Type Singular Name', 'theme_name' ),
'menu_name' => __( 'Servizi', 'theme_name' ),
'all_items' => __( 'Tutti i servizi', 'theme_name' ),
'view_item' => __( 'Vedi servizio', 'theme_name' ),
'add_new_item' => __( 'Aggiungi nuovo servizio', 'theme_name' ),
'add_new' => __( 'Aggiungi nuovo', 'theme_name' ),
'edit_item' => __( 'Modifica servizio', 'theme_name' ),
'update_item' => __( 'Aggiorna servizio', 'theme_name' ),
'search_items' => __( 'Cerca servizio', 'theme_name' ),
'not_found' => __( 'Nessun risultato', 'theme_name' ),
'not_found_in_trash' => __( 'Nessun risultato nel cestino', 'theme_name' ),
);
$args = array(
'label' => __( 'servizi', 'theme_name' ),
'description' => __( 'Descrizione del tuo custom post type', 'theme_name' ),
'labels' => $labels,
// Il seguente campo andrà a modificare i campi che saranno visibili nell'editor del post.
'supports' => array( 'title', 'author', 'thumbnail', 'revisions' ),
'hierarchical' => false,
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'show_in_nav_menus' => true,
'show_in_admin_bar' => true,
'menu_position' => 20,
// Menu icon sarà utile per impostare l'icona del tuo post personalizzato
'menu_icon' => 'dashicons-screenoptions',
'can_export' => true,
'has_archive' => true,
'exclude_from_search' => false,
'publicly_queryable' => true,
'capability_type' => 'page',
);
// Registering your Custom Post Type
register_post_type( 'slider', $args );
}
add_action( 'init', 'custom_service', 0 );
Con questa soluzione potrete già iniziare ad utilizzare il vostro post type, ma se volete personalizzare ulteriormente il vostro codice vi riporto il link in riferimento alla funzione utilizzata register_post_type. Qui potrete visualizzare la guida completa per ogni campo presente nel codice.
Inoltre se vorrete cambiare l’icona visualizzata potete sceglierla nella libreria Dashicons.