WordPress, just get the adjacent image links. I’ll tell you what to do with them!
WordPress is normally great about providing functions that have a return and an echo version. In WordPress, if a function has the prefix get_, then it does not echo (print it into the content), but rather returns the result so that it can be saved as a variable, like so: $example = get_example();
There are some functions that only have echo capability, so I wanted to share my work-around with you all.
Updated image_link functions
- adjacent_image_link() » get_adjacent_image_link()
- previous_image_link() » get_previous_image_link()
- next_image_link() » get_next_image_link()
To add the functions, paste the following code in your theme’s functions.php file:
// These functions are copied directly from wp-includes/media.php
// and modified to return the result instead of echo it.
function get_adjacent_image_link($prev = true) {
global $post;
$post = get_post($post);
$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;
$k = $prev ? $k - 1 : $k + 1;
if ( isset($attachments[$k]) )
return wp_get_attachment_link($attachments[$k]->ID, 'thumbnail', true);
}
function get_previous_image_link() {
return get_adjacent_image_link(true);
}
function get_next_image_link() {
return get_adjacent_image_link(false);
}
Now you can use these functions on your website. Any questions? 🙂

4 replies on “Get Adjacent Images – More WordPress Functions”
Thanks, mate! Exactly what I needed 😀
I’d do something like this instead:
function get_previous_image_link()
{
$args = func_get_args();
ob_start();
call_user_func_array(‘previous_image_link’,$args);
return ob_get_clean();
}
Let me know what you think.
Francesco.
@Francesco: That sounds like a good solution as well. Preferably, the function would simply be added to the WordPress core.
This code just copy and paste on function.php or need some step to use it?