So I'm trying to figure out how to modify the wp_get_attachment_link
function with a filter. I'd like to be able to add the target='_blank'
attribute to the anchor.
This is what I've tried but it isn't working:
function modify_attachment_link( $markup, $id, $size, $permalink, $icon, $text )
{
// We need just thumbnails.
if ( 'thumbnail' !== $size )
{ // Return the original string untouched.
return $markup;
}
// We have stored the new URL in a post meta field.
// See http://wordpress.stackexchange.com/q/3097 for an example.
$new_url = get_post_meta( $id, 'extra_url', TRUE );
if ( empty ( $new_url ) )
{ // There is no URL.
return $markup;
}
// Recreate the missing information.
$_post = & get_post( $id );
$post_title = esc_attr( $_post->post_title );
if ( $text )
{
$link_text = esc_attr( $text );
}
elseif (
( is_int( $size ) && $size != 0 )
or ( is_string( $size ) && $size != 'none' )
or $size != FALSE
)
{
$link_text = wp_get_attachment_image( $id, $size, $icon );
}
else
{
$link_text = '';
}
if ( trim( $link_text ) == '' )
{
$link_text = $_post->post_title;
}
return "<a href='$new_url' title='$post_title' target='_blank'>$link_text</a>";
}
add_filter( 'wp_get_attachment_link', 'modify_attachment_link', 10, 6 );
Perhaps some of what's going on here isn't even useful, but I really need the target
attribute.