Eliminate use of `extract()` in `gallery_shortcode()`.
See #22400. git-svn-id: https://develop.svn.wordpress.org/trunk@28414 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
parent
e9f929443f
commit
e135cc2076
|
@ -911,8 +911,9 @@ function gallery_shortcode( $attr ) {
|
||||||
|
|
||||||
if ( ! empty( $attr['ids'] ) ) {
|
if ( ! empty( $attr['ids'] ) ) {
|
||||||
// 'ids' is explicitly ordered, unless you specify otherwise.
|
// 'ids' is explicitly ordered, unless you specify otherwise.
|
||||||
if ( empty( $attr['orderby'] ) )
|
if ( empty( $attr['orderby'] ) ) {
|
||||||
$attr['orderby'] = 'post__in';
|
$attr['orderby'] = 'post__in';
|
||||||
|
}
|
||||||
$attr['include'] = $attr['ids'];
|
$attr['include'] = $attr['ids'];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -930,18 +931,20 @@ function gallery_shortcode( $attr ) {
|
||||||
* @param array $attr Attributes of the gallery shortcode.
|
* @param array $attr Attributes of the gallery shortcode.
|
||||||
*/
|
*/
|
||||||
$output = apply_filters( 'post_gallery', '', $attr );
|
$output = apply_filters( 'post_gallery', '', $attr );
|
||||||
if ( $output != '' )
|
if ( $output != '' ) {
|
||||||
return $output;
|
return $output;
|
||||||
|
}
|
||||||
|
|
||||||
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
|
// We're trusting author input, so let's at least make sure it looks like a valid orderby statement
|
||||||
if ( isset( $attr['orderby'] ) ) {
|
if ( isset( $attr['orderby'] ) ) {
|
||||||
$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
|
$attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] );
|
||||||
if ( !$attr['orderby'] )
|
if ( ! $attr['orderby'] ) {
|
||||||
unset( $attr['orderby'] );
|
unset( $attr['orderby'] );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$html5 = current_theme_supports( 'html5', 'gallery' );
|
$html5 = current_theme_supports( 'html5', 'gallery' );
|
||||||
extract(shortcode_atts(array(
|
$atts = shortcode_atts( array(
|
||||||
'order' => 'ASC',
|
'order' => 'ASC',
|
||||||
'orderby' => 'menu_order ID',
|
'orderby' => 'menu_order ID',
|
||||||
'id' => $post ? $post->ID : 0,
|
'id' => $post ? $post->ID : 0,
|
||||||
|
@ -953,47 +956,53 @@ function gallery_shortcode( $attr ) {
|
||||||
'include' => '',
|
'include' => '',
|
||||||
'exclude' => '',
|
'exclude' => '',
|
||||||
'link' => ''
|
'link' => ''
|
||||||
), $attr, 'gallery'));
|
), $attr, 'gallery' );
|
||||||
|
|
||||||
$id = intval($id);
|
$id = intval( $atts['id'] );
|
||||||
if ( 'RAND' == $order )
|
if ( 'RAND' == $atts['order'] ) {
|
||||||
$orderby = 'none';
|
$atts['orderby'] = 'none';
|
||||||
|
}
|
||||||
|
|
||||||
if ( !empty($include) ) {
|
if ( ! empty( $atts['include'] ) ) {
|
||||||
$_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
|
$_attachments = get_posts( array( 'include' => $atts['include'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
|
||||||
|
|
||||||
$attachments = array();
|
$attachments = array();
|
||||||
foreach ( $_attachments as $key => $val ) {
|
foreach ( $_attachments as $key => $val ) {
|
||||||
$attachments[$val->ID] = $_attachments[$key];
|
$attachments[$val->ID] = $_attachments[$key];
|
||||||
}
|
}
|
||||||
} elseif ( !empty($exclude) ) {
|
} elseif ( ! empty( $atts['exclude'] ) ) {
|
||||||
$attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
|
$attachments = get_children( array( 'post_parent' => $id, 'exclude' => $atts['exclude'], 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
|
||||||
} else {
|
} else {
|
||||||
$attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
|
$attachments = get_children( array( 'post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $atts['order'], 'orderby' => $atts['orderby'] ) );
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( empty($attachments) )
|
if ( empty( $attachments ) ) {
|
||||||
return '';
|
return '';
|
||||||
|
}
|
||||||
|
|
||||||
if ( is_feed() ) {
|
if ( is_feed() ) {
|
||||||
$output = "\n";
|
$output = "\n";
|
||||||
foreach ( $attachments as $att_id => $attachment )
|
foreach ( $attachments as $att_id => $attachment ) {
|
||||||
$output .= wp_get_attachment_link($att_id, $size, true) . "\n";
|
$output .= wp_get_attachment_link( $att_id, $atts['size'], true ) . "\n";
|
||||||
|
}
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
$itemtag = tag_escape($itemtag);
|
$itemtag = tag_escape( $atts['itemtag'] );
|
||||||
$captiontag = tag_escape($captiontag);
|
$captiontag = tag_escape( $atts['captiontag'] );
|
||||||
$icontag = tag_escape($icontag);
|
$icontag = tag_escape( $atts['icontag'] );
|
||||||
$valid_tags = wp_kses_allowed_html( 'post' );
|
$valid_tags = wp_kses_allowed_html( 'post' );
|
||||||
if ( ! isset( $valid_tags[ $itemtag ] ) )
|
if ( ! isset( $valid_tags[ $itemtag ] ) ) {
|
||||||
$itemtag = 'dl';
|
$itemtag = 'dl';
|
||||||
if ( ! isset( $valid_tags[ $captiontag ] ) )
|
}
|
||||||
|
if ( ! isset( $valid_tags[ $captiontag ] ) ) {
|
||||||
$captiontag = 'dd';
|
$captiontag = 'dd';
|
||||||
if ( ! isset( $valid_tags[ $icontag ] ) )
|
}
|
||||||
|
if ( ! isset( $valid_tags[ $icontag ] ) ) {
|
||||||
$icontag = 'dt';
|
$icontag = 'dt';
|
||||||
|
}
|
||||||
|
|
||||||
$columns = intval($columns);
|
$columns = intval( $atts['columns'] );
|
||||||
$itemwidth = $columns > 0 ? floor(100/$columns) : 100;
|
$itemwidth = $columns > 0 ? floor(100/$columns) : 100;
|
||||||
$float = is_rtl() ? 'right' : 'left';
|
$float = is_rtl() ? 'right' : 'left';
|
||||||
|
|
||||||
|
@ -1032,7 +1041,7 @@ function gallery_shortcode( $attr ) {
|
||||||
</style>\n\t\t";
|
</style>\n\t\t";
|
||||||
}
|
}
|
||||||
|
|
||||||
$size_class = sanitize_html_class( $size );
|
$size_class = sanitize_html_class( $atts['size'] );
|
||||||
$gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
|
$gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -1047,19 +1056,19 @@ function gallery_shortcode( $attr ) {
|
||||||
|
|
||||||
$i = 0;
|
$i = 0;
|
||||||
foreach ( $attachments as $id => $attachment ) {
|
foreach ( $attachments as $id => $attachment ) {
|
||||||
if ( ! empty( $link ) && 'file' === $link )
|
if ( ! empty( $atts['link'] ) && 'file' === $atts['link'] ) {
|
||||||
$image_output = wp_get_attachment_link( $id, $size, false, false );
|
$image_output = wp_get_attachment_link( $id, $atts['size'], false, false );
|
||||||
elseif ( ! empty( $link ) && 'none' === $link )
|
} elseif ( ! empty( $atts['link'] ) && 'none' === $atts['link'] ) {
|
||||||
$image_output = wp_get_attachment_image( $id, $size, false );
|
$image_output = wp_get_attachment_image( $id, $atts['size'], false );
|
||||||
else
|
} else {
|
||||||
$image_output = wp_get_attachment_link( $id, $size, true, false );
|
$image_output = wp_get_attachment_link( $id, $atts['size'], true, false );
|
||||||
|
}
|
||||||
$image_meta = wp_get_attachment_metadata( $id );
|
$image_meta = wp_get_attachment_metadata( $id );
|
||||||
|
|
||||||
$orientation = '';
|
$orientation = '';
|
||||||
if ( isset( $image_meta['height'], $image_meta['width'] ) )
|
if ( isset( $image_meta['height'], $image_meta['width'] ) ) {
|
||||||
$orientation = ( $image_meta['height'] > $image_meta['width'] ) ? 'portrait' : 'landscape';
|
$orientation = ( $image_meta['height'] > $image_meta['width'] ) ? 'portrait' : 'landscape';
|
||||||
|
}
|
||||||
$output .= "<{$itemtag} class='gallery-item'>";
|
$output .= "<{$itemtag} class='gallery-item'>";
|
||||||
$output .= "
|
$output .= "
|
||||||
<{$icontag} class='gallery-icon {$orientation}'>
|
<{$icontag} class='gallery-icon {$orientation}'>
|
||||||
|
|
Loading…
Reference in New Issue