我已经使用高级自定义字段插件创建了一个使用编辑器的元框
此元框显示一个文本编辑器,我可以从中创建和添加图库。
但是在检索画廊数据时。
$gallery = get_post_meta($post->ID, 'gallery', true);
echo $gallery;
这显示
[gallery ids="53,54,55,56"]
通常,画廊数据可以像
一样检索$galleries = get_post_gallery_images( get_the_ID() );
,如果我使用元盒来保存画廊,这似乎不起作用。
是否有WordPress获取图库图像并循环循环并在Lightbox中显示这些图像的方法,或者我应该尝试任何其他方法?
1st我假设您已经放了" [Gallery IDS =" 53,54,55,56"]"此简短的代码在Meta提出的这一简短代码中提出了为什么
$ GALLERY = GET_POST_META($ POST-> ID,'GALLERY',true);
Echo $ Gallery;
返回
[画廊IDS =" 53,54,55,56"]
可以尝试此
$ GALLERY = GET_POST_META($ POST-> ID,'GALLERY',true);
echo do_shortcode($ GALLERY);
和
$ galleries = get_post_gallery_images(get_the_id());
返回带有图像上传源的图像项数组列表。
这做了技巧
<?php
$gallery = get_post_meta($post->ID, 'gallery', true);
preg_match('/[gallery.*ids=.(.*).]/', $gallery, $ids);
$images_id = explode(",", $ids[1]);
if ($images_id[0] != "") {
if (is_array($images_id) || is_object($images_id)) {
foreach ($images_id as $image) {
$image_url = wp_get_attachment_image_src($image, 'banner');
?>
<a href="<?php echo $image_url[0]; ?>">
<?php echo wp_get_attachment_image($image, 'destinatoin', 'false', array("class" => "img-responsive")); ?>
</a>
<?php }
}
} ?>
应该做的是
preg_match('/[gallery.*ids=.(.*).]/', $gallery, $ids);
$images_id = explode(",", $ids[1]);
将创建一个ID数组,然后我可以通过
循环浏览图像 foreach ($images_id as $image) {
$image_url = wp_get_attachment_image_src($image, 'banner');
?>
<a href="<?php echo $image_url[0]; ?>">
<?php echo wp_get_attachment_image($image, 'destinatoin', 'false', array("class" => "img-responsive")); ?>
</a>
<?php }
不可能,因为我认为您没有将图库简短代码插入帖子编辑器因此,$ galleries = get_post_gallery_images(get_the_id());一无所有。
因此,将图像ID放入您的元盒中,喜欢
" 53,54,55,56"
和
$ GALLERY = GET_POST_META($ POST-> ID,'GALLERY',true);
$画廊变量将返回一个昏迷的coma分离的字符串,然后通过$ GALLERY_IMAGE_ARRAY =爆炸($ GALLERY);
然后$ GALLERY_IMAGE_ARRAY将具有图像ID,因此您可以循环浏览它,并且可以通过WP_GET_ATTACHMENT_IMAGE_SRC
获得这些图像并按照您的需求打印:)