摘录后的前三张图片

时间:2012-10-18 作者:sosukeinu

我有一些帖子只不过是[图库],里面有很多图片。有没有办法定义一个自动生成的摘录,只显示索引中这些帖子的前三幅图片,这样用户就必须点击才能看到其余的?非常感谢。

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

使用do_shortcode 作用

检查[gallery] 存在于您的帖子内容中

这里有一个简单的函数可以插入函数。检查当前帖子内容的库短代码的php:

function gallery_shortcode_exists(){

    global $post;

    # Check the content for an instance of [gallery] with or without arguments
    $pattern = get_shortcode_regex();
    if(
        preg_match_all( \'/\'. $pattern .\'/s\', $post->post_content, $matches )
        && array_key_exists( 2, $matches )
        && in_array( \'gallery\', $matches[2] )
    )
        return true;

    # Sourced from http://codex.wordpress.org/Function_Reference/get_shortcode_regex
}

使用do_shortcode() 渲染图库

您可以在模板文件的循环中使用以下内容:

# Determine if the post_content column contains the string [gallery]
if( gallery_shortcode_exists() ){

    # Get the first three attachments using the posts_per_page parameter
    $args = array(
        \'post_type\' => \'attachment\',
        \'post_mime_type\' => \'image\',
        \'posts_per_page\' => 3,
        \'post_parent\' => get_the_ID()
    );
    $attachments = get_children( $args );

    # If any attachments are returned, proceed
    if( $attachments ){

        # Spin cycle to collate attachment IDs
        foreach( $attachments as $attachment )
            $includes[] = $attachment->ID;

        # Format our IDs in a comma-delimited string
        $includes = implode(\',\', $includes);

        # Inject your include argument
        $shortcode = str_replace(\'[gallery\', "[gallery include=\'$includes\' ", get_the_content());

        # Render the Gallery using the standard editorial input syntax
        echo do_shortcode($shortcode);

        # Add a View More link
        echo \'<a href="\' . get_permalink() . \'">\' . __(\'View more\', \'domain\') . \'</a>\';
    }
    else
        _e(\'Foo Bar - No attachments found and no excerpt to display\', \'domain\');
}
else
    # Whatever fallback you desire
    the_excerpt();

结束

相关推荐

Gallery Pagination by Row

我在以下位置创建了一个图片库:http://ellenandjosh.com/?page_id=5. 目前,我有一个循环,在一定数量的图像之后显示分页:http://pastebin.com/N6nRRUei.通常情况下,这很好。。。但通常我没有不同宽度的图像。WordPress按高度裁剪图像,宽度可变。我想做的是在三行图像之后,然后添加分页按钮。。。而不是在一定数量的图像后显示分页按钮。。。这可能吗?第1页还可以,虽然底部行中可能会有更多图像-第2页只有两行,第3页第三行只有一个图像-尽管有更多图像。。