如何确定一篇帖子是否有附加图片?

时间:2012-12-04 作者:MonteCristo

我想知道如何确定帖子/页面是否有图像库(不是文档/视频等)?我不是在说这里显示的库短代码Check if post/page has gallery?

因此

if (has_gallery = true){

  //Do Something
}

else {
  // Do Something else
}

2 个回复
SO网友:chrisguitarguy

你可以使用get_posts 并搜索图像附件。

<?php
$images = get_posts(array(
    \'post_parent\'    => $the_parent_to_check, // whatever this is
    \'post_type\'      => \'attachment\', // attachments
    \'post_mime_type\' => \'image\', // only image attachments
    \'post_status\'    => \'inherit\', // attachments have this status
));

if($images)
{
     // has images
}
else
{
     // no images. :(
}
编写自定义SQL查询以检查计数可能更有效。这取决于您是否要对附件帖子进行操作。

SO网友:fuxia

要测试帖子是否有图库,请编写一个小助手函数:

function has_gallery( $post = NULL )
{
    if ( ! is_null( $post ) )
        $post = get_post( $post );

    if ( ! $post )
    {
        if ( ! isset ( $GLOBALS[\'post\'] ) )
            return FALSE;

        $post = $GLOBALS[\'post\'];
    }

    return FALSE !== strpos( $post->post_content, \'[gallery\' );
}
用法:

if ( has_gallery() ) 
{
    // do something
}
请注意,带有图库的帖子不需要有附件:您可以创建带有附加到其他帖子的图像的图库。

结束

相关推荐

Wordpress gallery shortag

我正在创建一个简单的幻灯片,在那里我想显示一篇文章中的4幅图像,我四处搜索,找到了这段代码,它只使用了内置的gallery功能<li><?php echo do_shortcode(\'[gallery id=\"\'.$post->ID.\'\"]\'); ?></li> 问题是它吐出了整个画廊。。。没有办法把这个限制在2,3吗?我试着用http://codex.wordpress.org/Function_Reference/get_the_post