hey guys,
I couldn’t find anything on the web. Is it possible to have custom template for the image attachement page. I wonder if it is possible to add a navigation to the image attachement page so people can easily navigate through a gallery.
Maybe it’s even possible to add comments to each image?
edit: Moreover is it also possible to query if I’m currently on an attachement page? E.g. for breadcrumbs I want to insert something like “home > back to post > current_image.jpg”
edit/update:
function breadcrumbs() {
if (!is_home()) {
echo "<a href='" . get_bloginfo('home') . "' title='Home'>Home</a> ⟩ ";
if (is_category()) {
$category = get_the_category();
echo $category[0]->cat_name;
} else if (is_single()) {
the_category('title_li=');
echo " ⟩ ";
the_title();
} else if (is_page()) {
$ancestors = get_post_ancestors($post);
// echo ancestors
foreach($ancestors as $id) {
echo "<a href='" . get_permalink( $id ) . "' title='" . get_the_title( $id ) . "'>" . get_the_title( $id ) . "</a> ⟩ ";
}
} else if (is_tag()) {
global $wp_query;
$tag = get_term( $wp_query->queried_object_id, 'post_tag');
echo "Tag ⟩ " . $tag->name;
} else if (is_search()) {
echo " Searchresults ⟩ " . get_search_query();
} else if (is_404()) {
echo "Not found";
//} else if ( is_attachment() ) {
} else if ($post->post_type == 'attachment') {
//echo "<a href='" . get_permalink() . "'>" . get_the_title() . "</a>";
echo "doesn't work?";
}
}
}
WordPress supports several types of attachment templates. The function
get_attachment_template
inwp-includes/theme.php
provides this support; it is called inwp-includes/template-redirect.php
. If your theme includesattachment.php
all of your attachments will be rendered with that template. If your theme also includesimage.php
then all of your images will use that template as long as they have a post_mime_type ofimage/*
.It is certainly possible to add gallery navigation. See
wp-content/themes/twentyten/loop-attachment.php
which uses functionsprevious_image_link
andnext_image_link
.Twentyten’s attachment template does call
comments_template
so you can collect comments on each photo. You just have to make sure your post links to the attachment pages and not directly to the images.You can call
is_attachment
to determine whether the queried object is an attachment.Short answer – Yes.
Attachments are served by template files based on their mime-type, So if your attachment is an image/jpg, for example, WordPress will first look for a template file named image.php, then jpg.php, and then finally attachment.php, before falling back on another template file (single.php or index.php). There’s a good chart showing the template hierarchy on the Codex page.
This only works if you’re accessing the attachment through WP’s rewrite structure (ie. when you insert the image, choosing the “link to post” rather than “link to file” option. The url should look something like domain.com/post-name/attachment-name … Accessing the file URL directly bypasses WordPress temple system.
And, if you want to check if you’re on an attachment page, you can always check the post type, ie.
Of course, within an attachment.php template, there’s no readon to bother checking that – you already know you’re on an attachment page.