web-dev-qa-db-fra.com

Obtenir l'image du terme de taxonomie à l'aide d'ACF

J'utilise le code ci-dessous pour essayer de récupérer un champ d'image appelé 'image' à partir d'un terme de taxonomie en utilisant le plugin Advanced Custom Fields. Ce code est basé sur la documentation du site ACF ici .

Il convient de noter que ce code est utilisé dans le modèle taxonomy.php, et je ne suis pas en mesure de spécifier une taxonomie et/ou des termes particuliers car j'ai besoin du code pour détecter la taxonomie et le terme actuels, en fonction de la page de l'utilisateur et de son clic à.

Toute aide très appréciée!

<?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="<?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(); ?>

enter image description here

14
dungey_140

Ok, donc vous obtenez la valeur du champ, il vous suffit de définir comment il doit sortir, comme ceci:

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

Cela suppose que vous souhaitez utiliser la taille de l'image miniature. Si vous utilisez une taille différente, remplacez ce texte par la taille d'image appropriée.

Si vous souhaitez renvoyer l'image en taille réelle, utilisez le code suivant:

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