Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




gallery_shortcode [ WordPress Function ]

gallery_shortcode ( $attr )
Parameters:
  • (array) $attr Attributes of the shortcode.
Returns:
  • (string) HTML content to display gallery.
Defined at:



The Gallery shortcode.

This implements the functionality of the Gallery Shortcode for displaying WordPress images on a post.

Source


<?php
function gallery_shortcode($attr) {
    global 
$post;

    static 
$instance 0;
    
$instance++;

    
// Allow plugins/themes to override the default gallery template.
    
$output apply_filters('post_gallery'''$attr);
    if ( 
$output != '' )
        return 
$output;

    
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
    
if ( isset( $attr['orderby'] ) ) {
        
$attr['orderby'] = sanitize_sql_orderby$attr['orderby'] );
        if ( !
$attr['orderby'] )
            unset( 
$attr['orderby'] );
    }

    
extract(shortcode_atts(array(
        
'order'      => 'ASC',
        
'orderby'    => 'menu_order ID',
        
'id'         => $post->ID,
        
'itemtag'    => 'dl',
        
'icontag'    => 'dt',
        
'captiontag' => 'dd',
        
'columns'    => 3,
        
'size'       => 'thumbnail',
        
'include'    => '',
        
'exclude'    => ''
    
), $attr));

    
$id intval($id);
    if ( 
'RAND' == $order )
        
$orderby 'none';

    if ( !empty(
$include) ) {
        
$include preg_replace'/[^0-9,]+/'''$include );
        
$_attachments get_posts( array('include' => $include'post_status' => 'inherit''post_type' => 'attachment''post_mime_type' => 'image''order' => $order'orderby' => $orderby) );

        
$attachments = array();
        foreach ( 
$_attachments as $key => $val ) {
            
$attachments[$val->ID] = $_attachments[$key];
        }
    } elseif ( !empty(
$exclude) ) {
        
$exclude preg_replace'/[^0-9,]+/'''$exclude );
        
$attachments get_children( array('post_parent' => $id'exclude' => $exclude'post_status' => 'inherit''post_type' => 'attachment''post_mime_type' => 'image''order' => $order'orderby' => $orderby) );
    } else {
        
$attachments get_children( array('post_parent' => $id'post_status' => 'inherit''post_type' => 'attachment''post_mime_type' => 'image''order' => $order'orderby' => $orderby) );
    }

    if ( empty(
$attachments) )
        return 
'';

    if ( 
is_feed() ) {
        
$output "\n";
        foreach ( 
$attachments as $att_id => $attachment )
            
$output .= wp_get_attachment_link($att_id$sizetrue) . "\n";
        return 
$output;
    }

    
$itemtag tag_escape($itemtag);
    
$captiontag tag_escape($captiontag);
    
$columns intval($columns);
    
$itemwidth $columns floor(100/$columns) : 100;
    
$float is_rtl() ? 'right' 'left';

    
$selector "gallery-{$instance}";

    
$gallery_style $gallery_div '';
    if ( 
apply_filters'use_default_gallery_style'true ) )
        
$gallery_style "
        <style type='text/css'>
            #
{$selector} {
                margin: auto;
            }
            #
{$selector} .gallery-item {
                float: 
{$float};
                margin-top: 10px;
                text-align: center;
                width: 
{$itemwidth}%;
            }
            #
{$selector} img {
                border: 2px solid #cfcfcf;
            }
            #
{$selector} .gallery-caption {
                margin-left: 0;
            }
        </style>
        <!-- see gallery_shortcode() in wp-includes/media.php -->"
;
    
$size_class sanitize_html_class$size );
    
$gallery_div "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
    
$output apply_filters'gallery_style'$gallery_style "\n\t\t" $gallery_div );

    
$i 0;
    foreach ( 
$attachments as $id => $attachment ) {
        
$link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id$sizefalsefalse) : wp_get_attachment_link($id$sizetruefalse);

        
$output .= "<{$itemtag} class='gallery-item'>";
        
$output .= "
            <
{$icontag} class='gallery-icon'>
                
$link
            </
{$icontag}>";
        if ( 
$captiontag && trim($attachment->post_excerpt) ) {
            
$output .= "
                <
{$captiontag} class='wp-caption-text gallery-caption'>
                " 
wptexturize($attachment->post_excerpt) . "
                </
{$captiontag}>";
        }
        
$output .= "</{$itemtag}>";
        if ( 
$columns && ++$i $columns == )
            
$output .= '<br style="clear: both" />';
    }

    
$output .= "
            <br style='clear: both;' />
        </div>\n"
;

    return 
$output;
}
?>

Examples [ wp-snippets.com ]

Google Arama Sonuçlarý

Dahasý ...

0 User Note(s)

Henüz yok. Ýlk sen ol!

Yeni Ekle ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics