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
11860800cookie-checkZeigen Sie ein benutzerdefiniertes Feldbild in der benutzerdefinierten Rastervorlage von Visual Composer anyes