Utilizo CMB2 para configurar campos personalizados, y la lógica no es tan diferente de ACF en muchos casos. Para mi caso de uso específico, he creado una función muy simple pero flexible para realizar algunas comprobaciones de la taxonomía antes de mostrar el valor del campo personalizado .
Teniendo en cuenta que uno ha creado un campo personalizado denominado my_cf
para, digamos, una taxonomía llamada básica según su ejemplo, la siguiente función puede ayudar a responder su pregunta y quizás extiende un poco el uso de tu campo personalizado.
function get_taxonomy_terms_custom_fields( $taxonomy = '' ) {
global $post;
$terms = get_the_terms( $post->ID, $taxonomy );
// Check if we have a taxonomy and that it is valid. If not, return false
if ( !$taxonomy )
return false;
// Sanitize the taxonomy input
$taxonomy = filter_var( $taxonomy, FILTER_SANITIZE_STRING );
// keep playing safe
if ( !taxonomy_exists( $taxonomy ) )
return false;
foreach ( $terms as $term ) {
// Set a variable for taxonomy term_id
$tax_term_id = $term->term_id;
$my_field = get_term_meta( $tax_term_id, 'my_cf', true );
// Make sure we do not have a WP_Error object, not really necessary, but better be safe
if ( is_wp_error( $term ) )
continue;
// escaping the returned value // esc_html(), esc_url(), esc_attr()
return esc_html($my_field);
}
}
Simplemente use <?php get_taxonomy_terms_custom_fields ('basic'); ?>
reemplazando basic
con su propio nombre de taxonomía.
La función get_taxonomy_terms_custom_fields ()
verificará la taxonomía y el tipo de bucle especificados en todas las categorías asignadas a post, post_type y luego devolverá el valor del campo personalizado si está presente, evitando errores si no lo está. También podría extenderse para verificar si hay un campo que produzca una matriz (), como un campo repetible.
Espero que ayude - ¡Buena suerte!