我创建了一个扩展WPBakery
插件的自定义元素。这个自定义元素将是一个图像滑块。用户从单个后端选项中选择他们想要的图像数量,然后图像将被分解(explode()
),返回并显示图像 - 无论如何都是这个想法。
但是,我无法弄清楚为什么我的图像没有被退回?周围的内容正在前端呈现,但是这些图像所在的li
,src
它们是空的。另外,我在后端选择了三张图像,但li
正在渲染一张。
这是完整的标记:
<?php
if ( ! defined( 'ABSPATH' ) ) {
die( '-1' );
}
class vcImageCarousel extends WPBakeryShortCode {
function __construct() {
add_action( 'init', array( $this, 'vc_imageCarousel_mapping' ) );
add_shortcode( 'vc_imageCarousel', array( $this, 'vc_imageCarousel_html' ) );
}
vc_map(
array(
'name' => __('Image Carousel', 'text-domain'),
'base' => 'vc_imageCarousel',
'description' => __('Image Carousel', 'text-domain'),
'params' => array(
array(
'type' => 'attach_images',
'heading' => esc_html__("Images"),
'param_name' => 'image',
'value' => esc_html__(''),
'admin_label' => false,
'weight' => 0,
'group' => __( 'Content', 'my-text-domain' ),
)
)
)
);
public function vc_imageCarousel_html( $atts ) {
extract(
shortcode_atts(
array(
'id' => '',
'class' => '',
),
$atts
)
);
// map background image attributes
$image = shortcode_atts(
array(
'image' => 'image',
),
$atts
);
$image_ids=explode(',',$image['image']);
$result = "<div class='imageCarousel'>";
$result .= "<div class='imageCarousel__container justify-content-center'>";
$result .= "<ul>";
foreach( $image_ids as $image_id ){
$result .='<li>';
$result .= var_dump($image_id);
$result .= wp_get_attachment_image_src( $image_id, 'full' );
$result .='</li>';
}
$result .= "</ul>";
$result .= "</div>";
$result .= "</div>";
return $result;
}
}
new vcImageCarousel(); ?>
一个var_dump($image_id)
返回string(5) "image"
。