mirrored from git://develop.git.wordpress.org/
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
/
Copy pathloop-attachment.php
179 lines (167 loc) · 5.94 KB
/
loop-attachment.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
<?php
/**
* The loop that displays an attachment
*
* The loop displays the posts and the post content. See
* https://developer.wordpress.org/themes/basics/the-loop/ to understand it and
* https://developer.wordpress.org/themes/basics/template-tags/ to understand
* the tags used in it.
*
* This can be overridden in child themes with loop-attachment.php.
*
* @package WordPress
* @subpackage Twenty_Ten
* @since Twenty Ten 1.2
*/
?>
<?php
if ( have_posts() ) {
while ( have_posts() ) :
the_post();
?>
<?php if ( ! empty( $post->post_parent ) ) : ?>
<p class="page-title"><a href="<?php echo esc_url( get_permalink( $post->post_parent ) ); ?>" rel="gallery">
<?php
/* translators: %s: Title of parent post. */
printf( __( '<span class="meta-nav">←</span> %s', 'twentyten' ), get_the_title( $post->post_parent ) );
?>
</a></p>
<?php endif; ?>
<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
<h2 class="entry-title"><?php the_title(); ?></h2>
<div class="entry-meta">
<?php
printf(
/* translators: %s: Author display name. */
__( '<span class="%1$s">By</span> %2$s', 'twentyten' ),
'meta-prep meta-prep-author',
sprintf(
'<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
/* translators: %s: Author display name. */
esc_attr( sprintf( __( 'View all posts by %s', 'twentyten' ), get_the_author() ) ),
get_the_author()
)
);
?>
<span class="meta-sep">|</span>
<?php
printf(
/* translators: 1: CSS classes, 2: Date. */
__( '<span class="%1$s">Published</span> %2$s', 'twentyten' ),
'meta-prep meta-prep-entry-date',
sprintf(
'<span class="entry-date"><abbr class="published" title="%1$s">%2$s</abbr></span>',
esc_attr( get_the_time() ),
get_the_date()
)
);
if ( wp_attachment_is_image() ) {
echo ' <span class="meta-sep">|</span> ';
$metadata = wp_get_attachment_metadata();
printf(
/* translators: %s: Image dimensions. */
__( 'Full size is %s pixels', 'twentyten' ),
sprintf(
'<a href="%1$s" title="%2$s">%3$s × %4$s</a>',
esc_url( wp_get_attachment_url() ),
esc_attr( __( 'Link to full-size image', 'twentyten' ) ),
$metadata['width'],
$metadata['height']
)
);
}
?>
<?php edit_post_link( __( 'Edit', 'twentyten' ), '<span class="meta-sep">|</span> <span class="edit-link">', '</span>' ); ?>
</div><!-- .entry-meta -->
<div class="entry-content">
<div class="entry-attachment">
<?php
if ( wp_attachment_is_image() ) :
$attachments = array_values(
get_children(
array(
'post_parent' => $post->post_parent,
'post_status' => 'inherit',
'post_type' => 'attachment',
'post_mime_type' => 'image',
'order' => 'ASC',
'orderby' => 'menu_order ID',
)
)
);
foreach ( $attachments as $k => $attachment ) {
if ( $attachment->ID === $post->ID ) {
break;
}
}
// If there is more than 1 image attachment in a gallery...
if ( count( $attachments ) > 1 ) {
++$k;
if ( isset( $attachments[ $k ] ) ) {
// ...get the URL of the next image attachment.
$next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
} else {
// ...or get the URL of the first image attachment.
$next_attachment_url = get_attachment_link( $attachments[0]->ID );
}
} else {
// Or, if there's only 1 image attachment, get the URL of the image.
$next_attachment_url = wp_get_attachment_url();
}
?>
<p class="attachment"><a href="<?php echo esc_url( $next_attachment_url ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment">
<?php
/**
* Filters the Twenty Ten default attachment width.
*
* @since Twenty Ten 1.0
*
* @param int The default attachment width in pixels. Default 900.
*/
$attachment_width = apply_filters( 'twentyten_attachment_size', 900 );
/**
* Filters the Twenty Ten default attachment height.
*
* @since Twenty Ten 1.0
*
* @param int The default attachment height in pixels. Default 900.
*/
$attachment_height = apply_filters( 'twentyten_attachment_height', 900 );
// Filterable image width with, essentially, no limit for image height.
echo wp_get_attachment_image( $post->ID, array( $attachment_width, $attachment_height ) );
?>
</a></p>
<div id="nav-below" class="navigation">
<div class="nav-previous"><?php previous_image_link( false ); ?></div>
<div class="nav-next"><?php next_image_link( false ); ?></div>
</div><!-- #nav-below -->
<?php else : ?>
<a href="<?php echo esc_url( wp_get_attachment_url() ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment"><?php echo esc_html( wp_basename( get_permalink() ) ); ?></a>
<?php endif; ?>
</div><!-- .entry-attachment -->
<div class="entry-caption">
<?php
if ( ! empty( $post->post_excerpt ) ) {
the_excerpt();
}
?>
</div>
<?php the_content( __( 'Continue reading <span class="meta-nav">→</span>', 'twentyten' ) ); ?>
<?php
wp_link_pages(
array(
'before' => '<div class="page-link">' . __( 'Pages:', 'twentyten' ),
'after' => '</div>',
)
);
?>
</div><!-- .entry-content -->
<div class="entry-utility">
<?php twentyten_posted_in(); ?>
<?php edit_post_link( __( 'Edit', 'twentyten' ), ' <span class="edit-link">', '</span>' ); ?>
</div><!-- .entry-utility -->
</div><!-- #post-<?php the_ID(); ?> -->
<?php comments_template(); ?>
<?php endwhile;
} // End of the loop. ?>