Rufen Sie mit ACF ein Bild aus dem Taxonomiebegriff ab

Lesezeit: 5 Minuten

Benutzeravatar von dungey_140
dungey_140

Ich verwende den folgenden Code, um zu versuchen, ein Bildfeld mit dem Namen “Bild” aus einem Taxonomiebegriff mithilfe des Plugins “Erweiterte benutzerdefinierte Felder” abzurufen. Dieser Code basiert auf der Dokumentation auf der ACF-Website hier.

Es sollte beachtet werden, dass dieser Code in der Vorlage taxonomy.php verwendet wird und ich keine bestimmte Taxonomie und/oder Begriffe angeben kann, da ich den Code benötige, um die aktuelle Taxonomie und den aktuellen Begriff zu erkennen, basierend auf der Seite, die der Benutzer durchgeklickt hat zu.

Jede Hilfe wird sehr geschätzt!

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

Geben Sie hier die Bildbeschreibung ein

  • Haben Sie das ACF-Feld richtig auf die Taxonomie eingestellt und rufen Sie in Ihrem Code den richtigen Feldnamen auf? Sie haben den Code aus dem Beispiel in der ACF-Dokumentation bereitgestellt, aber keinen Ihrer Produktionscodes. Stellen Sie nach Möglichkeit einen Screenshot Ihrer ACF-Einstellungen für dieses Taxonomiefeld bereit.

    – Plummer

    10. Dezember 2015 um 16:31 Uhr

  • Ihr zweites $image “$image = get_field(‘image’, $taxonomy . ‘_’ . $term_id);” sollte daran arbeiten, den Wert des benutzerdefinierten Felds eines Taxonomiebegriffs abzurufen. Was gibt es aktuell zurück? Wie ist Ihr Rückgabewert für das benutzerdefinierte Feld eingestellt?

    – Jo

    10. Dezember 2015 um 16:31 Uhr

  • Hallo @Plummer, ich habe meine Frage aktualisiert, um den vollständigen Code aus der Datei taxonomy.php und einen Screenshot der ACF-Einstellungen einzuschließen

    – Kerker_140

    10. Dezember 2015 um 16:56 Uhr


  • @Joe – derzeit wird nichts vom ACF-Code zurückgegeben

    – Kerker_140

    10. Dezember 2015 um 16:58 Uhr

  • Mit diesen Feldeinstellungen sollte ein Objekt zurückgegeben werden. Gibt ein var_dump($image) also auch nichts zurück?

    – Jo

    10. Dezember 2015 um 17:00 Uhr

Joes Benutzeravatar
Jo

Ok, Sie erhalten also den Wert des Felds, Sie müssen nur festlegen, wie es ausgegeben werden soll, etwa so:

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

Dies setzt voraus, dass Sie die Miniaturbildgröße verwenden möchten. Wenn Sie eine andere Größe verwenden, ändern Sie diesen Text in die entsprechende Bildgröße.

Wenn Sie das Bild in voller Größe zurückgeben möchten, verwenden Sie den folgenden Code:

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

  • Hallo @Joe – Ich versuche, die Bildgröße von “Miniaturansicht” auf “Vollbild” zu ändern, aber wenn ich das tue, funktioniert der Code nicht. Es funktioniert jedoch mit den Einstellungen “groß” und “mittel”. Irgendwelche Ideen?

    – Kerker_140

    10. Dezember 2015 um 18:09 Uhr

  • Ändern Sie den Code wie folgt: echo ‘'.$image['url']‘; das sollte die URL in voller Größe zurückgeben.

    – Jo

    10. Dezember 2015 um 18:11 Uhr

  • Das ist verwirrend, da Sie nicht erklärt haben, dass $taxonomy das Begriffsobjekt ist, das mit get_terms() erhalten wird.

    – Adal

    30. Dezember 2019 um 4:42 Uhr

  • Ich hielt es nicht für notwendig, den gesamten Code des ursprünglichen Fragestellers zu kopieren/einzufügen, ich fügte nur zusätzlichen Code hinzu, um die gewünschte Ausgabe zu erhalten.

    – Jo

    31. Dezember 2019 um 14:07 Uhr

  • das Beispiel übersehe ich ab Holen Sie sich einen Wert von verschiedenen Objekten $post_id = "category_3";

    – Er ist

    3. Februar um 18:15 Uhr

  <?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 ist eine Vorlage für eine benutzerdefinierte Taxonomie, die auf dem gleichen Modell von archives.php basiert. Bei dieser Art von Vorlage sollten Sie die WordPress-Schleife verwenden

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

Sie können get_field, die Post-ID, so als 2. Parameter übergeben:

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

  • Überprüfen Sie die Quellenreferenz von ACF. Sie setzen ein Feld auf eine Taxonomie und versuchen dann, diesen Wert abzurufen. Außerdem habe ich persönlich Ihre Antwort nicht abgelehnt, sondern jemand anderes, da ich dachte, OP würde dies zunächst auch verlangen.

    – Plummer

    10. Dezember 2015 um 16:29 Uhr


  • $image = get_field(‘image’, $queried_object); sollte ein Array zurückgeben. mach einen var_dump davon

    – Bibbip

    10. Dezember 2015 um 16:37 Uhr


  • – Purnendu Sarkar

    26. Mai 2020 um 6:33 Uhr

1403930cookie-checkRufen Sie mit ACF ein Bild aus dem Taxonomiebegriff ab

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy