Daniele Scasciafratte - WP Roma
#wproma

Proviamo CMB2

Come aggiungere dei custom field al tuo tema

By Daniele Scasciafratte

Daniele Scasciafratte

  • Co Founder Codeat - Full Stack Developer
  • Mozillian&Mozilla Reps
  • Redattore per il network AndMore, ChimeraRevo, TechEconomy
  • Utente Debian Linux dal 2009
  • WordPress Contributor/Developer/Translator
  • Open Source Addicted
  • Industria Italiana Software Libero Admin

Hai mai modificato un tema di altri?

Hai mai scritto un tema da zero?

Feature

Multilingua

Utilizzabile nelle pagine opzioni

Nei post type anche da frontend

Anche per i plugin

Millemila parametri

Moduli aggiuntivi

Wiki: github.com/WebDevStudios/CMB2/wiki

Snippets: github.com/WebDevStudios/CMB2-Snippet-Library

wpandmore.info/crea-meta-box-senza-problemi/

Apriamo il file functions.php

github.com/WebDevStudios/CMB2/wiki/Field-Types

Inseriamo il codice di esempio


// Hook di inizializzazione
add_action( 'cmb2_init', 'cmb2_sample_metaboxes' );
function cmb2_sample_metaboxes() {

    // Un _ all'inizio fá in modo che dal backend nel box per i campi personalizzati non venga visualizzato
    $prefix = '_yourprefix_';

    // Creiamo il box
    $cmb = new_cmb2_box( array(
        'id'            => 'test_metabox', // ID di riferimento, deve essere univoco
        'title'         => __( 'Test Metabox', 'cmb2' ), // Il titolo del box
        'object_types'  => array( 'page', 'post', 'iltuocpt', 'user' ), // I Post type
        'context'       => 'normal', // Indica la posizione se centrale o laterale
        'priority'      => 'high', // Indica l'ordine
        'show_names'    => true, // Mostra il titolo del campo
        // 'closed'     => true, // Box chiuso di default
    ) );

    // Classico campo di testo
    $cmb->add_field( array(
        'name'       => __( 'Test Text', 'cmb2' ), // Titolo del campo
        'desc'       => __( 'field description (optional)', 'cmb2' ), // Descrizione del campo
        'id'         => $prefix . 'text', // ID di riferimento del valore e del box, meglio univoco
        'type'       => 'text', // Il tipo di campo
        // 'show_on_cb'      => 'cmb2_hide_if_no_cats', // Callback per mostrare il campo tramite del nostro codice
        // 'sanitization_cb' => 'my_custom_sanitization', // Validazione del valore del campo tramite del nostro codice
        // 'on_front'        => false, // Visualizzarlo da frontend
        // 'repeatable'      => true, // Campo ripetuto
    ) );
}
					

Modifichiamo una pagina e salviamo

Modifichiamo il file page.php

github.com/WebDevStudios/CMB2/wiki/Basic-Usage