此元框显示一个文本编辑器,我可以从中创建并添加图库。
但是在检索图库数据时。
$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方式来获取图库图像并循环显示它们并在灯箱中显示这些图像,还是应该尝试其他任何方法?
答案 0 :(得分:0)
第一,我假设你已经把“[gallery ids =”53,54,55,56“]”这个简短的代码提交给了
$ gallery = get_post_meta($ post-> ID,'gallery',true);
echo $ gallery;
返回
[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());
返回包含图像上传源的图像项数组列表。
答案 1 :(得分:0)
这就是诀窍
<?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 }
答案 2 :(得分:0)
不可能因为我认为你没有将画廊短代码插入帖子编辑器, 所以$ galleries = get_post_gallery_images(get_the_ID());没有任何东西。
因此,在您的元框文件中放入图像ID, 喜欢
&#34; 53,54,55,56&#34;
和
$ gallery = get_post_meta($ post-&gt; ID,&#39; gallery&#39;,true);
$ gallery变量将返回一个逗号分隔的字符串,然后将其爆炸 $ gallery_image_array = explode($ gallery);
然后$ gallery_image_array会有一个图像ID,所以你可以遍历它,你可以通过wp_get_attachment_image_src获得这些图像
并根据需要打印:)