attachment.php
Description: Displays an image that has been attached to a blog post (or page?). Used only if the "Link to page" option was selected when the image was uploaded.
This template includes the following templates:
Template Code
<?php get_header(); ?>
<div id="content" class="widecolumn">
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
<div class="navigation">
<div class="alignleft"> </div>
<div class="alignright"> </div>
</div>
<?php $attachment_link = get_the_attachment_link($post->ID, true, array(450, 800)); // This also populates the iconsize for the next line ?>
<?php $_post = &get_post($post->ID); $classname = ($_post->iconsize[0] <= 128 ? 'small' : '') . 'attachment'; // This lets us style narrow icons specially ?>
<div class="post" id="post-<?php the_ID(); ?>">
<h2><a href="<?php echo get_permalink($post->post_parent); ?>" rev="attachment"><?php echo get_the_title($post->post_parent); ?></a> » <a href="<?php echo get_permalink() ?>" rel="bookmark" title="Permanent Link: <?php the_title_attribute(); ?>"><?php the_title(); ?></a></h2>
<div class="entry">
<p class="<?php echo $classname; ?>"><?php echo $attachment_link; ?><br /><?php echo basename($post->guid); ?></p>
<?php the_content('<p class="serif">Read the rest of this entry »</p>'); ?>
<?php wp_link_pages(array('before' => '<p><strong>Pages:</strong> ', 'after' => '</p>', 'next_or_number' => 'number')); ?>
<p class="postmetadata alt">
<small>
This entry was posted
<?php /* This is commented, because it requires a little adjusting sometimes.
You'll need to download this plugin, and follow the instructions:
http://binarybonsai.com/archives/2004/08/17/time-since-plugin/ */
/* $entry_datetime = abs(strtotime($post->post_date) - (60*120)); echo time_since($entry_datetime); echo ' ago'; */ ?>
on <?php the_time('l, F jS, Y') ?> at <?php the_time() ?>
and is filed under <?php the_category(', ') ?>.
You can follow any responses to this entry through the <?php comments_rss_link('RSS 2.0'); ?> feed.
<?php if (('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Both Comments and Pings are open ?>
You can <a href="#respond">leave a response</a>, or <a href="<?php trackback_url(); ?>" rel="trackback">trackback</a> from your own site.
<?php } elseif (!('open' == $post-> comment_status) && ('open' == $post->ping_status)) {
// Only Pings are Open ?>
Responses are currently closed, but you can <a href="<?php trackback_url(); ?> " rel="trackback">trackback</a> from your own site.
<?php } elseif (('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Comments are open, Pings are not ?>
You can skip to the end and leave a response. Pinging is currently not allowed.
<?php } elseif (!('open' == $post-> comment_status) && !('open' == $post->ping_status)) {
// Neither Comments, nor Pings are open ?>
Both comments and pings are currently closed.
<?php } edit_post_link('Edit this entry.','',''); ?>
</small>
</p>
</div>
</div>
<?php comments_template(); ?>
<?php endwhile; else: ?>
<p>Sorry, no attachments matched your criteria.</p>
<?php endif; ?>
</div>
<?php get_footer(); ?>
This template includes the following tags:
attachment_link()is a WordPress hook.comments_rss_link()is a WordPress tag which displays a link to the RSS feed for a given post's comments.comments_template()is a WordPress include tag which includes the filecomments.php.echo_time_since()is commented out by default.edit_post_link()is a Wordpress tag which displays a link to edit the current post (assuming the user is logged in and has the appropriate permissions).get_footer()is a WordPress include tag which includes the filefooter.php.get_header()is a WordPress include tag which includes the fileheader.php.get_permalink()is a WordPress function which returns, but does not display, the permalink to a post. It can be used anywhere in a WordPress template.get_post()is a WordPress tag.get_the_attachment_link()is a WordPress tag which returns, but does not display, a link to the specified attachment.get_the_title()is a WordPress tag which accepts a post ID and returns the title of the post.have_posts()is part of The Loop.the_content()is a Wordpress tag which displays the contents of the current post. This tag must be used within The Loop.the_category()is a WordPress tag which displays a link to the category or categories that a post belongs to. This tag must be used within The Loop.the_ID()is a WordPress tag which displays the numeric ID of the current post. It must be within The Loop.the_post()is aWP_Querymethod: "Advance onto the next post, and set the global $post variable."the_time()is a WordPress tag which displays the time of the current post. This tag must be used within The Loop.the_title_attribute()is a WordPress tag which displays or returns the title of the current post. This tag must be used within The Loop.the_title()is a WordPress tag which displays or returns the title of the current post. This tag must be used within The Loop.trackback_url()is a WordPress tag which displays or returns the trackback URL for the current post. This tag must be used within The Loop.wp_link_pages()is a WordPress tag which displays page-links for paginated posts. It replaces the deprecatedlink_pages().
Other:
- All the code between
<?php if (have_posts()) : ?>and<?php endwhile; ?>constitutes The Loop.
HTML Skeleton
[HEADER.PHP] <div id="content" class="widecolumn"> <div class="navigation"> <div class="alignleft">« Older Entries</div> <div class="alignright">Newer Entries »</div> </div> <div class="post" id="post-[#]"> <h2>[LINK TO POST] » [LINK TO ATTACHMENT]</h2> <div class="entry"> <p class="attachment">[IMAGE]</p> <p class="postmetadata alt"> <small>This entry was posted on [DATE] at [TIME] and is filed under [CATEGORY]. You can follow any responses to this entry through the [FEED] feed.</small> </p> </div> </div> [COMMENTS.PHP OR COMMENTS-POPUP.PHP] </div> [FOOTER.PHP]
Related CSS Styles
Resources
- Using Image and File Attachments (WordPress Codex)