Custom Fields WordPress e Meta Boxes
1.049 visite
Custom Fields WordPress e Meta Boxes
I Custom Fields sono dei campi personalizzati con coppia chiave/valore associati ad un post type o custom post type.
Per i post type di default (post o articoli nella versione in italiano) i campi personalizzati possono essere aggiunti tramite pannello.
Infatti entrate in un post e in alto troverete sotto impostazioni il flag: campi personalizzati.
Una volta creato il custom field va inserito nel register_post_type alla voce ‘supports’.
Per prendere il valore del custom field usare il seguente codice:
1 2 3 4 5 6 |
$chiave = 'nome_custom_fields'; $valore = get_post_meta($post->ID , $chiave , true); if (!empty($valore)) // controllo se esite altrimenti viene ignorato { echo $chiave.': '.$valore.'</br>'; } |
Questo è il modo più semplice per creare un custom fields ma se ne possono creare di molto più complessi con l’ ausilio dei meta-box usando una libreria di appoggio come WPAlchemy_MetaBox.
Per iniziare scaricare la libreria dal sito e inserirla all’interno del nostro tema.
Quindi in function.php del tema inserire il seguente codice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
// include the class in your theme or plugin include_once 'WPAlchemy/MetaBox.php'; // include css to help style our custom meta boxes add_action( 'init', 'my_metabox_styles' ); function my_metabox_styles() { if ( is_admin() ) { wp_enqueue_style( 'wpalchemy-metabox', get_stylesheet_directory_uri() . '/metaboxes/meta.css' ); } } $custom_metabox = new WPAlchemy_MetaBox(array ( 'id' => '_custom_meta', 'title' => 'My Custom Meta', 'template' => STYLESHEETPATH . '/custom/meta.php' )); |
Il nostro Meta Box sarà definito nel file che troviamo alla voce template.
Vogliamo per esempio inserire un campo select per dare un voto da parte dell’autore al libro:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<div class="my_meta_control"> <p> <?php $mb->the_field('voto'); ?> <label>Voto Libro</label> <select name="<?php $mb->the_name(); ?>"> <?php for ($i=1;$i<=10;$i+=0.5) { ?> <option value="<?php echo $i; ?>" <?php echo ($this->get_the_value()==$i) ? "selected" : ""; ?>><?php echo $i; ?> </option> <?php } ?> </select> </p> </div> |
Il metaboxes apparirà come in figura:
Per prendere il dato del campo personalizzato dovremmo eseguire il codice seguente:
1 2 3 4 5 |
global $custom_metabox; $meta = $custom_metabox->the_meta(); print_r($meta); |
otterremo un output del tipo:
1 |
Array{[voto] => 1} |
In questo video il creatore di WPAlckemy_MetaBoxes spiega come installare e usare questa classe di appoggio con un semplice ma dettagliato esempio passo passo:
[youtuber youtube=’http://www.youtube.com/watch?v=gQdJMI8fXuk’]
Altri link utili:
http://www.wproots.com/complex-meta-boxes-in-wordpress/