Ottenere il valore in un campo personalizzato con tassonomia
Ho un campo personalizzato my_cf
per una Tassonomia/Termine. Come posso ottenere e visualizzare il valore del campo personalizzato per una tassonomia/termine?
Ho provato a usare:
$variable = get_field('my_cf', 'basic');
echo $variable;
dove basic - è il nome della mia tassonomia. Ma questo non funziona.
Qualche suggerimento?
Non posso spiegarlo meglio della pagina della documentazione ACF che ho postato nei commenti:
Tutte le funzioni API possono essere utilizzate con un termine di tassonomia, tuttavia è richiesto un secondo parametro per puntare all'ID del termine. Questo è simile a passare un post_id per puntare a un oggetto post specifico.
Il $post_id richiesto è una stringa contenente il nome della tassonomia + l'ID del termine in questo formato: $TaxonomyName_$TermID
Quindi, se il tuo campo personalizzato è my_cf
, il nome della tua tassonomia è basic
(non il nome del termine) e l'ID del termine all'interno della tua tassonomia è 42, allora avrai bisogno di:
$variabile = get_field( 'my_cf', 'basic_42' );

ok, il mio url: edit-tags.php?taxonomy=basic&post_type=products come posso ottenere l'id della tassonomia? nel campo personalizzato basic - my_cf, '$variable = get_field( 'my_cf', 'basic_42' ); - non funziona

Quando ho risposto a questa domanda non avevo notato che stavi usando un plugin per creare i termini personalizzati. Continuare con il funzionamento di ACF potrebbe essere la soluzione migliore. Se per qualche motivo non funziona, puoi ottenere l'id del termine con get_term_by(). Documentazione: http://codex.wordpress.org/Function_Reference/get_term_by

Utilizzo CMB2 per configurare campi personalizzati, e la logica non è molto diversa da ACF in molti casi. Per il mio caso d'uso specifico ho creato una funzione molto semplice ma flessibile per effettuare alcuni controlli sulla tassonomia prima di visualizzare il valore del campo personalizzato.
Considerando che sia stato creato un campo personalizzato chiamato my_cf
per una tassonomia chiamata basic come nel tuo esempio, la seguente funzione potrebbe aiutare a rispondere alla tua domanda e magari estendere un po' l'utilizzo dei tuoi campi personalizzati.
function get_taxonomy_terms_custom_fields( $taxonomy = '' ) {
global $post;
$terms = get_the_terms( $post->ID, $taxonomy );
// Verifica se abbiamo una tassonomia e che sia valida. Se no, restituisce false
if ( !$taxonomy )
return false;
// Sanificazione dell'input della tassonomia
$taxonomy = filter_var( $taxonomy, FILTER_SANITIZE_STRING );
// continua a giocare sul sicuro
if ( !taxonomy_exists( $taxonomy ) )
return false;
foreach ( $terms as $term ) {
// Imposta una variabile per il term_id della tassonomia
$tax_term_id = $term->term_id;
$my_field = get_term_meta( $tax_term_id, 'my_cf', true );
// Assicurati di non avere un oggetto WP_Error, non strettamente necessario, ma meglio prevenire
if ( is_wp_error( $term ) )
continue;
// escape del valore restituito // esc_html(), esc_url(), esc_attr()
return esc_html($my_field);
}
}
Basta usare <?php get_taxonomy_terms_custom_fields ('basic'); ?>
sostituendo basic
con il nome della tua tassonomia.
La funzione get_taxonomy_terms_custom_fields ()
verificherà la tassonomia specificata e scorrerà tutte le categorie assegnate a un post, post_type per poi restituire il valore del campo personalizzato se presente, evitando errori se non presente. Potrebbe anche essere estesa per verificare un campo che produce un array() come un campo ripetibile.
Spero sia utile - Buona fortuna!
