Zeigen Sie ein benutzerdefiniertes Feldbild in der benutzerdefinierten Rastervorlage von Visual Composer an

Lesezeit: 3 Minuten

Ich arbeite an einer WP-Site mit Visual Composer.

Auf der Homepage habe ich ein “Post Grid”-Element eingefügt, das einen bestimmten benutzerdefinierten Post-Typ lädt.

Dieser benutzerdefinierte Beitrag hat mehrere benutzerdefinierte Felder (erstellt mit dem Advanced Custom Fields Plugin): Eines dieser Felder ist ein Bild.

Dieses Beitragsraster verwendet ein benutzerdefiniertes Raster, um diese benutzerdefinierten Felder anzuzeigen.

Wenn ich die Seite in der Vorschau ansehe, werden der Post-Thumb (das Beitragsbild) und einige benutzerdefinierte Textfelder korrekt angezeigt, aber das sekundäre Bild (das mit einem benutzerdefinierten Feld erstellt wurde) zeigt nur Text an (insbesondere das Array-Objekt oder die ID des Bildes ).

Wie kann ich das Bild rendern? Ist es möglich, Code für dieses benutzerdefinierte Feld (z. B. das omg-HTML-Tag) einzufügen, um das Rendern des Textes zu vermeiden?

Danke im Voraus, Francesco

Ich habe dieses Problem auch.

Öffnen Sie die Datei js_composer\include\classes\vendors\plugins\acf\class-vc-gitem-acf-shortcode.php

Und setzen Sie diesen Code: vor die Rückkehr, und Sie können die ursprüngliche Rückkehr kommentieren:

$allFields = acf_get_fields($field_group);
    for ($i=0; $i < count($allFields); $i++) {
        if ( $field_key == $allFields[$i]['key'] && $allFields[$i]['type'] == 'image') {
            return '<div ' . $field_key . ' class="' . esc_attr( $css_class ) . '">'
                    . '<img src="https://stackoverflow.com/questions/37377546/{{ acf" . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . ' }} ">'
                 . '</div>';
        } else {
            return '<div ' . $field_key . ' class="' . esc_attr( $css_class ) . '">'
                    . '{{ acf' . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . ' }}'
                 . '</div>';
        }
    }

Dies funktioniert für das Bildfeld, Sie können andere Feldtypen verwenden.

Sie können meine Datei und einige Informationen hier sehen: https://github.com/ramonMontanhes/visualcomposer-acf

Öffnen Sie die Datei js_composer\include\classes\vendors\plugins\acf\class-vc-gitem-acf-shortcode.php

Und setzen Sie diesen Code: vor die Rückkehr, und Sie können die ursprüngliche Rückkehr kommentieren:

     $f = get_field_object($field_key);


     if ( $f['type'] == 'image') {
         return '<div ' . $field_key . ' class="' . esc_attr( $css_class ) . '">'
                 . '<img src="https://stackoverflow.com/questions/37377546/{{ acf" . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . ' }} ">'
              . '</div>';
     } else {
         return '<div ' . $field_key . ' class="' . esc_attr( $css_class ) . '">'
                 . '{{ acf' . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . ' }}'
              . '</div>';
     }

Sind Sie sicher, dass Sie den exakten Code verwenden, um das Bild aus der erweiterten benutzerdefinierten Feldoption abzurufen?

Hier ist der genaue Code, den Sie brauchten:

<?php 

$image = get_field('image');

if( !empty($image) ): ?>

    <img src="https://stackoverflow.com/questions/37377546/<?php echo $image["url']; ?>" alt="https://stackoverflow.com/questions/37377546/<?php echo $image["alt']; ?>" />

<?php endif; ?>

Ersetzen Sie diese ID einfach durch Ihre eigene Feld-ID und sie wird wie unten gezeigt aussehen:

get_field('your own field id');

Hoffe, es macht Sinn, wenn Sie noch Hilfe benötigen, lassen Sie es mich wissen. Vielen Dank

1186080cookie-checkZeigen Sie ein benutzerdefiniertes Feldbild in der benutzerdefinierten Rastervorlage von Visual Composer an

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

Privacy policy