Qual è la differenza tra get_option() e get_post_meta() in WordPress?

Sviluppando per WordPress ti imbatterai in due funzioni fondamentali: get_option() e get_post_meta().

Entrambe restituiscono valori dal database, ma hanno scopi diversi.

Vediamo nel dettaglio.

get_option()

La funzione get_option() ha lo scopo di recuperare le impostazioni globali di WordPress oppure le impostazioni personalizzate di temi e plugin.

Recupera i dati dalla tabella wp_options.

Ad esempio, in un ecommerce realizzato con WooCommerce si recupera la valuta principale impostata nel plugin (es. “EUR”):

$currency = get_option( 'woocommerce_currency' );

Altri esempi su quando usare get_option:

  • Il titolo del sito (get_option('blogname'))
  • L’email dell’amministratore (get_option('admin_email'))

Quindi se le impostazioni sono relative all’intero sito e non al singolo contenuto, normalmente si usa get_option().

get_post_meta()

La funzione get_post_meta() viene usata per recuperare i metadati associati a un singolo post, pagina o custom post type.

Recupera i dati dalla tabella wp_postmeta.

Ad esempio si può usare per recuperare il prezzo di un prodotto:

$price = get_post_meta($product_id, 'prezzo', true);

Altri esempi che mi vengono in mente al volo:

  • L’URL di un’immagine aggiuntiva in un post.
  • Le informazioni extra di un evento (data, luogo, orario).

Quindi se il dato è legato a un contenuto specifico si utilizza get_post_meta().

Riassumendo

La scelta dipende dal livello di applicazione del dato:

  • Globale → get_option()
  • Specifico per un contenuto → get_post_meta()

Conoscere la differenza tra queste due funzioni ti permette di strutturare meglio plugin e temi, evitando ridondanze e mantenendo il codice più pulito ed efficiente.

Sponsor

Vhosting
themeforest