Detect if is image unattached

时间:2016-01-13 作者:Nebojsa Lukic

我对未附加的附件有问题。我使用图像。php显示Wordpress图像库。我总是显示“大图像”(对于当前单击的图像)。。。在这张图片下,我展示了那个图库中的其他拇指。

我使用此代码显示“大”图像:

$img_attachment = wp_get_attachment_image_src($post->ID, \'medium\');
$img_height = $img_attachment[2];
$img_full = wp_get_attachment_image_src($post->ID, \'large\');

<div style="text-align:center">
<img src="<?php echo $img_attachment[0]; ?>"/>
</div>
我用这个代码来显示该图库中其余的拇指:

$gallery_shortcode = \'[gallery id="\' . intval( $post->post_parent ) . \'" columns="4"]\';
$gallery_content = do_shortcode($gallery_shortcode);
echo $gallery_content;
问题是什么?问题是Wordpress使用图像。php文件也用于未附加的图像。所以,如果你有5千张未附加的图像,而有人从谷歌来到其中一张未附加的图像(因为谷歌也收集未附加的图像,无论你是否习惯这样),那么图像。php文件将显示类似“大图像”的图像,并且在该大图像下,他将显示所有未访问的图像。。。因此,他将在一页上列出所有5千张图片!

我认为有两种解决方案。

以某种方式检测图像是否未附加到任何帖子。。。如果这是真的,那么就不要在下面显示拇指库,或者我需要在代码的第二部分做一些更改来解决这个问题,怎么做?

1 个回复
最合适的回答,由SO网友:birgire 整理而成

对于未连接的图像post_parent 中的列wp_posts 表,其值为0.

在这种情况下,您的库短代码是:

[gallery id="0" columns="4"]
也就是说你在打电话get_children() 具有post_parent0.

例如,您可以使用gallery快捷码回调gallery_shortcode() 直接:

if( $parent_id = $post->post_parent )
{
    echo gallery_shortcode( 
        [ 
            \'id\'      => (int) $parent_id, 
            \'columns\' => 4 
        ] 
    );
}
其中,我们仅显示附加图像的库。