Obtener valor en el campo personalizado con taxonomía [cerrado]

4

Tengo el campo personalizado my_cf para Taxonomía / Término. ¿Cómo puedo obtener y generar valor con un campo personalizado para taxonomía / plazo?

He intentado usar:

$variable = get_field('my_cf', 'basic'); 
  echo $variable; 

donde básico - nombre para mi taxonomía. Pero esto no funciona.

¿Alguna sugerencia?

    
pregunta John Genry 03.11.2013 - 20:16

3 respuestas

3

Realmente no puedo explicarlo mejor que Página de documentación de ACF que publiqué en los comentarios :

  

Todas las funciones de la API se pueden usar con un término de taxonomía, sin embargo, se requiere un segundo parámetro para identificar el ID del término. Esto es similar a pasar a través de un post_id para segmentar un objeto de publicación específico.

     

El $ post_id necesario es una cadena que contiene el nombre de la taxonomía + el ID de término en este formato: $TaxonomyName_$TermID

Entonces, si su campo personalizado es my_cf , y su nombre de taxonomía es basic ( no nombre del término) y el término ID en su taxonomía es 42, entonces necesita:

$variable = get_field( 'my_cf', 'basic_42' );
    
respondido por el Milo 04.11.2013 - 01:01
1

¿Sus datos de campo están almacenados en wp_options? Si es así ...

$term_id = 12345;
$term_meta = get_option( 'taxonomy_' . $term_id );
$my_cf = $term_meta[ 'my_cf' ];
echo $my_cf;
    
respondido por el Joey Yax 03.11.2013 - 23:55
1

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!

    
respondido por el Adriano Monecchi 16.05.2016 - 17:40

Lea otras preguntas en las etiquetas