I custom fields sono dei campi aggiuntivi che possono essere creati direttamente dagli autori nella schermata di modifica deglia articoli. Questi campi permettono di aggiungere informazioni supplementari ai post, informazioni che potranno essere recuperate nel tema con l’utilizzo di funzioni apposite.

Alcuni casi reali di utilizzo dei campi personalizzati

  • Vogliamo definire la posizione dell’articolo in homepage: inseriamo un identificativo che potrà essere richiamato in fase di scrittura delle query.
  • Ci serve un indirizzo URL alternativo in modo da sostituire il permalink del post se si verifica una particolare condizione, oppure l’indirizzo per una immagine che deve comparire in una particolare posizione del layout.
  • Vogliamo impostare un campo numerico per l’ordinamento dei post.

Come creare un custom field

Al momento della creazione di un campo personalizzato dobbiamo impostare due stringhe: un nome e un valore. Il nome rappresenta una chiave che servirà per estrarre il valore corrispondente per il post corrente.

campi-personalizzati

  1. clicchiamo su aggiungi nuovo
  2. nel campo nome aggiungere la chiave necessaria per recuperare il contenuto (ad. esempio ‘foto_anteprima’)
  3. nel campo valore che compare sulla destra aggiungere il contenuto che vogliamo assegnare alla chiave per il post corrente
  4. clicchiamo su aggiungi campo personalizzato

Aggiungiamo un campo con chiave immagine_anteprima e diamo come valore il percorso di una immagine.

inserimento-campo-personalizzato

Una volta che una chiave è stata usata per uno post sarà disponibile a ricevere il valore per tutti gli altri post.

capo-personalizzato-aggiornamento

Come recuperare queste informazioni in un template

Per estrarre dal database i meta dati impostati per un post bisogna fare riferimento alla funzione get_post_meta()

Recuperiamo il percorso di un’immagine che verrà visualizzata nel post.

<?php if ( get_post_meta( get_the_ID(), 'foto_anteprima', true ) ) : ?>
    <a href="<?php the_permalink() ?>">
        <img class="thumb" src="<?php echo get_post_meta( get_the_ID(), 'foto_anteprima', true ); ?>" alt="<?php the_title(); ?>" />
    </a>
<?php endif; ?>

  inStileWeb.com
blog comments powered by Disqus