从附件图像中排除Post中的图像

时间:2011-03-17 05:23:37

标签: wordpress

我在single.php中使用了一个简单的jQuery图像幻灯片,即调用我帖子的所有图像附件。但我想排除在实际帖子中发布的图像,但保留所有图像实际附加到帖子。

我正在使用这段代码来获取所有图片附件,但不幸的是,它也抓住了帖子内容中的所有图片,这是不必要的:

<?php
$attachs = get_posts(array(
    'numberposts' => -1,
    'post_type' => 'attachment',
    'post_parent' => get_the_ID(),
    'post_mime_type' => 'image', // get attached images only
    'output' => ARRAY_A
));

if (!empty($attachs)) {
    foreach ($attachs as $att) {
        // get image's source based on size, 
        // can be 'thumbnail', 'medium', 'large', 'full' 
        // or registed post thumbnails sizes
        $src = wp_get_attachment_image_src($att->ID, 'full');
        $src = $src[0];

        // show image
        echo "<div style='margin: 0 10px 10px 0; float: left'><img src='$src' /></div>";
    }
}
?>

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

不幸的是,在Wordpress中,附加图像和插入帖子的图像之间没有区别。人们在网络上使用的一个常见解决方案是在帖子中添加一个meta_data,例如“_inserted_image”(true | false),当你在帖子中插入内嵌和图像时,使用钩子来更新这个值。我认为有点太复杂了。

一个简单的解决方法是专门为幻灯片创建一个类别,并立即从媒体库中将用于幻灯片的所有图像放在此类别中。然后只需添加'category'=&gt; 'for_slideshows'在你的获取帖子参与你的条件。

$attachs = get_posts(array(
                'numberposts' => -1,
                'post_type' => 'attachment',
                'post_parent' => get_the_ID(),
                'post_mime_type' => 'image', // get attached images only
                'output' => ARRAY_A,
                'category' => 'for_slideshows'
                ));

希望它有所帮助。