Obtenga una imagen del término de taxonomía usando ACF

5 minutos de lectura

avatar de usuario
dungey_140

Estoy usando el siguiente código para intentar recuperar un campo de imagen llamado ‘imagen’ de un término de taxonomía usando el complemento de campos personalizados avanzados. Este código se basa en la documentación del Sitio web de ACF aquí.

Cabe señalar que este código se está utilizando dentro de la plantilla taxonomy.php, y no puedo especificar una taxonomía y/o términos particulares, ya que necesito el código para detectar la taxonomía y el término actuales, según la página en la que el usuario hizo clic. a.

Cualquier ayuda muy apreciada!

<?php get_header(); ?>
<?php get_sidebar(); ?>

<section id="hero-image">
    <div class="gradient-overlay">
        <?php 
        // vars
        $queried_object = get_queried_object(); 
        $taxonomy = $queried_object->taxonomy;
        $term_id = $queried_object->term_id;  

        // load thumbnail for this taxonomy term (term object)
        $image = get_field('image', $queried_object);

        // load thumbnail for this taxonomy term (term string)
        $image = get_field('image', $taxonomy . '_' . $term_id);
        ?>
    </div>
    <div class="grid">
        <header class="unit full-width">
            <a href="https://stackoverflow.com/questions/34206455/<?php echo home_url(); ?>/" title="Kurdistan Memory Programme" class="logo"><?php bloginfo( 'name' ); ?></a>
        </header>
        <footer class="unit one-half">
            <h1><?php single_cat_title(); ?></h1>
            <h4 class="scroll-down">Scroll down to continue</h4>
        </footer>
    </div>
</section>

<?php get_footer(); ?>

ingrese la descripción de la imagen aquí

  • ¿Configuró el campo ACF en la taxonomía de manera adecuada y está llamando al nombre de campo correcto en su código? Ha proporcionado el código del ejemplo en la documentación de ACF, pero ninguno de su código de producción. Si es posible, proporcione una captura de pantalla de la configuración de ACF para este campo de taxonomía.

    – Plummer

    10 dic 2015 a las 16:31

  • Tu segunda $imagen “$imagen = get_field(‘imagen’, $taxonomía . ‘_’ . $term_id);” debería estar trabajando para obtener el valor del campo personalizado de un término de taxonomía. ¿Qué está devolviendo actualmente? ¿Cuál es su valor de retorno establecido para el campo personalizado?

    – José

    10 dic 2015 a las 16:31

  • Hola, @Plummer, actualicé mi pregunta para incluir el código completo del archivo taxonomy.php y una captura de pantalla de la configuración de ACF.

    – dungey_140

    10 de diciembre de 2015 a las 16:56


  • @Joe: actualmente no se devuelve nada del código ACF

    – dungey_140

    10 de diciembre de 2015 a las 16:58

  • Con esa configuración de campo, se debe devolver un objeto. Entonces, ¿un var_dump ($ imagen) tampoco devuelve nada?

    – José

    10 dic 2015 a las 17:00

avatar de usuario
José

Ok, entonces está obteniendo el valor del campo, solo necesita configurar cómo debe generarse, así:

$image = get_field('image', $taxonomy . '_' . $term_id);
echo '<img src="'.$image['sizes']['thumbnail'].'" alt="$image['alt']" />';

Esto supone que desea utilizar el tamaño de la imagen en miniatura. Si usa un tamaño diferente, cambie ese texto al tamaño de imagen apropiado.

Si desea devolver la imagen a tamaño completo, utilice el siguiente código:

$image = get_field('image', $taxonomy . '_' . $term_id);
echo '<img src="'.$image['url'].'" alt="$image['alt']" />';

  • Hola, @Joe: intento cambiar de “miniatura” a “completa” para el tamaño de la imagen, pero cuando lo hago, el código no funciona. Sin embargo, funciona con las configuraciones ‘grande’ y ‘mediana’. ¿Algunas ideas?

    – dungey_140

    10 de diciembre de 2015 a las 18:09

  • Cambia el código a esto: echo ‘Obtenga una imagen del término de taxonomía usando ACF‘; eso debería devolver la URL de tamaño completo.

    – José

    10 de diciembre de 2015 a las 18:11

  • Esto es confuso ya que no explicaste que $taxonomy es el término objeto obtenido usando get_terms().

    – Adal

    30 de diciembre de 2019 a las 4:42

  • No sentí que fuera necesario copiar/pegar todo el código del interrogador original, solo incluí código adicional para obtener el resultado deseado.

    – José

    31 de diciembre de 2019 a las 14:07

  • el ejemplo que paso por alto Obtener un valor de diferentes objetos $post_id = "category_3";

    – Hebe

    3 de febrero a las 18:15

  <?php 
                                $terms = get_field('best_seller_laptops_pc_category');
                                if( $terms ): ?>
                                <?php foreach( $terms as $term ):
                                    $thumb_id = get_woocommerce_term_meta( $term->term_id, 'thumbnail_id', true );
                                    $term_img = wp_get_attachment_url(  $thumb_id );
                                ?>


           <div class="col-lg-6">
                <div class="addbox1">
                    <img alt="" src="https://stackoverflow.com/questions/34206455/<?php echo $term_img;?>">
                    <div class="contain">
                        <h3>
                           <?php echo esc_html( $term->name ); ?>
                        </h3>
                        <h4><?php echo esc_html( $term->description ); ?></h4>
                        <a href="<?php echo get_term_link( $term ); ?>">LEARN MORE</a>
                        <a href="<?php echo get_term_link( $term ); ?>" class="btn">buy now</a>
                    </div>
                </div>
            </div>

        <?php endforeach; ?>
        <?php endif; ?> 

taxonomy.php es una plantilla para una taxonomía personalizada basada en el mismo modelo de archives.php En este tipo de plantilla, debe usar el bucle de wordpress

<?php if ( have_posts() ) : while ( have_posts() ) : the_post(); ?>

A ellos, puede pasarles get_field, el ID de la publicación así como segundo parámetro:

$image = get_field('image', $post->ID);

  • Verifique la referencia de la fuente de ACF. Están configurando un campo A una taxonomía y luego tratando de recuperar ese valor. Además, en una nota personal, no rechacé su respuesta, alguien más lo hizo, ya que esto es lo que pensé que OP también estaba pidiendo al principio.

    – Plummer

    10 de diciembre de 2015 a las 16:29


  • $imagen = get_field(‘imagen’, $objeto_consultado); debe devolver una matriz. haz un var_dump de eso

    – bipbip

    10 de diciembre de 2015 a las 16:37


  • – Purnendu Sarkar

    26 de mayo de 2020 a las 6:33

¿Ha sido útil esta solución?