在 Visual Composer 自定义网格模板上显示自定义字段图像

Posted

技术标签:

【中文标题】在 Visual Composer 自定义网格模板上显示自定义字段图像【英文标题】:Display a custom field image on Visual Composer Custom Grid Template 【发布时间】:2016-09-19 12:58:12 【问题描述】:

我正在使用 Visual Composer 开发一个 WP 网站。

在主页中,我插入了一个“Post Grid”元素,它加载特定的自定义帖子类型。

此自定义帖子有多个自定义字段(使用高级自定义字段插件制作):其中一个字段是图像。

此帖子网格使用自定义网格来显示这些自定义字段。

当我预览页面时,它会正确显示帖子缩略图(帖子特色图片)、一些文本自定义字段,但辅助图像(使用自定义字段创建)仅显示文本(在特定的数组对象或 ID 中)图片)。

如何渲染图像?是否可以为该自定义字段(例如 omg html 标签)插入一些代码以避免文本呈现?

提前致谢, 弗朗切斯科

【问题讨论】:

【参考方案1】:

打开文件 js_composer\include\classes\vendors\plugins\acf\class-vc-gitem-acf-shortcode.php

并把这段代码:放在return之前,可以注释掉原来的return:

     $f = get_field_object($field_key);


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

【讨论】:

【参考方案2】:

我也遇到了这个问题。

打开文件 js_composer\include\classes\vendors\plugins\acf\class-vc-gitem-acf-shortcode.php

并把这段代码:放在return之前,可以注释掉原来的return:

$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="  acf' . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . '  ">'
                 . '</div>';
         else 
            return '<div ' . $field_key . ' class="' . esc_attr( $css_class ) . '">'
                    . ' acf' . ( ! empty( $field_key ) ? ':' . $field_key : '' ) . ' '
                 . '</div>';
        
    

这个工作是针对图像字段的,你可以对其他类型的字段做更多的else。

您可以在此处查看我的文件和一些信息:https://github.com/ramonMontanhes/visualcomposer-acf

【讨论】:

【参考方案3】:

您确定您正在使用确切的代码从高级自定义字段选项中获取图像吗?

这是您需要的确切代码:

<?php 

$image = get_field('image');

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

    <img src="<?php echo $image['url']; ?>"  />

<?php endif; ?>

只需将这个id替换成你自己的字段id,就会变成如下图:

get_field('your own field id');

希望,这是有道理的,如果您仍需要任何帮助,请告诉我。谢谢

【讨论】:

以上是关于在 Visual Composer 自定义网格模板上显示自定义字段图像的主要内容,如果未能解决你的问题,请参考以下文章

在Visual COmposer中添加自定义图标

如何在自定义模板 Visual Studio 2019 中添加多个选项

asp.net core kendo ui 网格自定义命令模板不起作用

网格在列定义之间留出额外空间

是否可以使用自定义模板创建可扩展的UI网格作为Ul li显示

生产力提升! 自己动手自定义Visual Studio 2019的 类创建模板,制作简易版Vsix安装包...