SHOW:
|
|
- or go back to the newest paste.
1 | remove_shortcode('gallery','gallery_shortcode'); | |
2 | add_shortcode('gallery','custom_gallery_shortcode'); | |
3 | ||
4 | function custom_gallery_shortcode( $attr ) { | |
5 | /** | |
6 | * The 'custom' Gallery shortcode. | |
7 | * | |
8 | * based on the code from /wp-includes/media.php line 745 in version wp3.2 | |
9 | */ | |
10 | global $post; | |
11 | ||
12 | static $instance = 0; | |
13 | $instance++; | |
14 | ||
15 | // Allow plugins/themes to override the default gallery template. | |
16 | $output = apply_filters('post_gallery', '', $attr); | |
17 | if ( $output != '' ) | |
18 | return $output; | |
19 | ||
20 | // We're trusting author input, so let's at least make sure it looks like a valid orderby statement | |
21 | if ( isset( $attr['orderby'] ) ) { | |
22 | $attr['orderby'] = sanitize_sql_orderby( $attr['orderby'] ); | |
23 | if ( !$attr['orderby'] ) | |
24 | unset( $attr['orderby'] ); | |
25 | } | |
26 | ||
27 | extract(shortcode_atts(array( | |
28 | 'order' => 'ASC', | |
29 | 'orderby' => 'menu_order ID', | |
30 | 'id' => $post->ID, | |
31 | 'itemtag' => 'dl', | |
32 | 'icontag' => 'dt', | |
33 | 'captiontag' => 'dd', | |
34 | 'columns' => 3, | |
35 | 'size' => 'thumbnail', | |
36 | 'include' => '', | |
37 | 'exclude' => '' | |
38 | ), $attr)); | |
39 | ||
40 | $id = intval($id); | |
41 | if ( 'RAND' == $order ) | |
42 | $orderby = 'none'; | |
43 | ||
44 | if ( !empty($include) ) { | |
45 | $include = preg_replace( '/[^0-9,]+/', '', $include ); | |
46 | $_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); | |
47 | ||
48 | $attachments = array(); | |
49 | foreach ( $_attachments as $key => $val ) { | |
50 | $attachments[$val->ID] = $_attachments[$key]; | |
51 | } | |
52 | } elseif ( !empty($exclude) ) { | |
53 | $exclude = preg_replace( '/[^0-9,]+/', '', $exclude ); | |
54 | $attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); | |
55 | } else { | |
56 | $attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) ); | |
57 | } | |
58 | ||
59 | if ( empty($attachments) ) | |
60 | return ''; | |
61 | ||
62 | if ( is_feed() ) { | |
63 | $output = "\n"; | |
64 | foreach ( $attachments as $att_id => $attachment ) | |
65 | $output .= wp_get_attachment_link($att_id, $size, true) . "\n"; | |
66 | return $output; | |
67 | } | |
68 | ||
69 | $itemtag = tag_escape($itemtag); | |
70 | $captiontag = tag_escape($captiontag); | |
71 | $columns = intval($columns); | |
72 | $itemwidth = $columns > 0 ? floor(100/$columns) : 100; | |
73 | $float = is_rtl() ? 'right' : 'left'; | |
74 | ||
75 | $selector = "gallery-{$instance}"; | |
76 | ||
77 | $gallery_style = $gallery_div = ''; | |
78 | if ( apply_filters( 'use_default_gallery_style', true ) ) | |
79 | $gallery_style = " | |
80 | <style type='text/css'> | |
81 | #{$selector} { | |
82 | margin: auto; | |
83 | } | |
84 | #{$selector} .gallery-item { | |
85 | float: {$float}; | |
86 | margin-top: 10px; | |
87 | text-align: center; | |
88 | width: {$itemwidth}%; | |
89 | } | |
90 | #{$selector} img { | |
91 | border: 2px solid #cfcfcf; | |
92 | } | |
93 | #{$selector} .gallery-caption { | |
94 | margin-left: 0; | |
95 | } | |
96 | </style> | |
97 | <!-- see gallery_shortcode() in wp-includes/media.php -->"; | |
98 | $size_class = sanitize_html_class( $size ); | |
99 | $gallery_div = "<div id='$selector' class='gallery galleryid-{$id} gallery-columns-{$columns} gallery-size-{$size_class}'>"; | |
100 | $output = apply_filters( 'gallery_style', $gallery_style . "\n\t\t" . $gallery_div ); | |
101 | ||
102 | $i = 0; | |
103 | foreach ( $attachments as $id => $attachment ) { | |
104 | $link = isset($attr['link']) && 'file' == $attr['link'] ? wp_get_attachment_link($id, $size, false, false) : wp_get_attachment_link($id, $size, true, false); | |
105 | ||
106 | $output .= "<{$itemtag} class='gallery-item'>"; | |
107 | ||
108 | - | $output .= "<span class='gallery-item-counter'>".($i+1)."</span>"; //NEW |
108 | + | $output .= "<div class='imageNum'><span>".($i+1)."</span></div>"; //NEW |
109 | ||
110 | $output .= " | |
111 | <{$icontag} class='gallery-icon'> | |
112 | $link | |
113 | </{$icontag}>"; | |
114 | if ( $captiontag && trim($attachment->post_excerpt) ) { | |
115 | $output .= " | |
116 | <{$captiontag} class='wp-caption-text gallery-caption'> | |
117 | " . wptexturize($attachment->post_excerpt) . " | |
118 | </{$captiontag}>"; | |
119 | } | |
120 | $output .= "</{$itemtag}>"; | |
121 | if ( $columns > 0 && ++$i % $columns == 0 ) | |
122 | $output .= '<br style="clear: both" />'; | |
123 | } | |
124 | ||
125 | $output .= " | |
126 | <br style='clear: both;' /> | |
127 | </div>\n"; | |
128 | ||
129 | return $output; | |
130 | } |