Advertisements

gallery_shortcode

Definition:
function gallery_shortcode($attr) {}

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

Parameters

  • array $attr: Attributes of the shortcode.

Return values

returns:HTML content to display gallery.

Defined filters

  • post_gallery
    apply_filters('post_gallery', '', $attr)

Source code

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, $size, true) . "\n";

		return $output;

	}



	$itemtag = tag_escape($itemtag);

	$captiontag = tag_escape($captiontag);

	$columns = intval($columns);

	$itemwidth = $columns > 0 ? floor(100/$columns) : 100;

	$float = is_rtl() ? 'right' : 'left';



	$selector = "gallery-{$instance}";

1100

Advertisements

No comments yet... Be the first to leave a reply!

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: