如果有2个图库,当用户将列号设置为3时,是否无法获取图库的列?

时间:2018-06-18 作者:coolpasta

我正在检测用户的帖子中是否有图库:

$gallery = get_post_gallery( $post->ID, False );
$gallery_images = explode( \',\', $gallery[\'ids\'] );
有时我想看看它有多少列:

var_dump( $gallery[\'columns\'] );
这适用于2列,返回2 但如果我将列设置为3,它会中断,并抛出错误:

<b>Notice</b>:  Undefined index: columns in <b>C:\\file.php</b> on line <b>45</b>
请注意,4、5列可以正常工作,但3列不行。This only happens when there\'s a second gallery in the post.

这怎么可能?

1 个回复
SO网友:LWS-Mo

好的,我只是进一步测试了一下。实际上,如果选择3列(默认WP gallery列计数),并执行var_dump( $gallery ); 你会发现没有column 输入数组。(例如,有4列["columns"]=> "4").
您可以这样做:

$gallery = get_post_gallery( $post->ID, false );

if (array_key_exists( \'columns\', $gallery )) {
    echo $gallery[\'columns\'];
} else {
    echo \'default WP 3 columns\';
}

结束

相关推荐

Replacing an Image gallery

我在常规的stackexchange网站上发布了这篇文章,但后来发现有一个特定于wordpress的网站,所以我将其重新发布在这里。我正在尝试在我创建的自定义帖子类型中创建一个库。我希望能够通过wordpress管理编辑器将图像/图库添加到帖子中,但之后会有一个功能,即拉取图像,将其包装在div中,并用新图像替换现有图库。我想这样做,因为我希望图像能够适合不同大小图像的网格。例如,图像1是全宽,图像2是半宽,图像3是四分之一,依此类推。我试过两种方法,一种是get_children()$featuredI