WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

Is there a way to disable image attachment links trought a filter in functions.php or something ? I know it's possible to do it manually when you add an image to a post but I want to disable this functionality by default.


What I want to do is set the "Link URL" option to "none" and remove / hide it from the upload attachement screen.

enter image description here

Is there a solution to hook into the "media-upload" "pop-in" ?

Thanks by advance.

share|improve this question
What theme do you use? – kaiser May 23 '11 at 21:44
I use a custom theme that I created. – inwpitrust May 28 '11 at 10:28
up vote 7 down vote accepted

If anybody is interested in do the trick, my solution is this:

function remove_media_link( $form_fields, $post ) {

        unset( $form_fields['url'] );

              return $form_fields;


add_filter( 'attachment_fields_to_edit', 'remove_media_link', 10, 2 );
share|improve this answer

Go to-> http://yourblog.com/wp-admin/options.php

Search for: image_default_link_type

Change Value to: none (available options are none, file [links to the file itself], post [links to the post the image is related to], attachment [links to the attachment page with the image on it])

or set it in your functions.php via (same options available as mentioned above)

update_option( 'image_default_link_type', 'none' );
share|improve this answer
This is great, i'm sure most people don't know of this image_default_link_type setting – JasonDavis May 23 '13 at 3:11

There is a plugin to solve this called "Remove Link URL" and it removes the link by default, still allowing it to be added in if you click the button. I believe this fixes the problem you're describing :)


share|improve this answer

I think you would have to edit the loop-attachment.php in your theme, specifically lines 50-61:

if ( wp_attachment_is_image() ) {
                                echo ' <span class="meta-sep">|</span> ';
                                $metadata = wp_get_attachment_metadata();
                                printf( __( 'Full size is %s pixels', 'twentyten' ),
                                    sprintf( '<a href="%1$s" title="%2$s">%3$s &times; %4$s</a>',
                                        esc_attr( __( 'Link to full-size image', 'twentyten' ) ),

Pretty sure commenting out this whole block will achieve what you want. Haven't tested it myself though.

share|improve this answer
I use a custom theme which doesn't have loop-attachment.php in it. – inwpitrust May 28 '11 at 10:31
ok. that complicates things. if you want to go down this route I would suggest you look in the main loop of the twenty-ten theme and see where the loop-attachment.php fits in, and try and import it over. Otherwise you could look for instances of wp_get_attachment_metadata() in your theme to see where your theme is attaching the image links. – edzillion May 28 '11 at 11:56

In functions.php or likewise file:

share|improve this answer

Here is the basic php function that you would need to insert into your theme's functions.php file:

function lose_attachment($content){
return preg_replace('/<a(.*?)href="(.*?)\/attachment\/(.*?)"/i', '<a$1href="$2"', $content);
add_filter('the_excerpt', 'lose_attachment',2);

This will remove the 'attachment/name-of-image-file' part from the URL making it link to the post's permalink itself.

share|improve this answer
Hi, thanks for the response but it doesn't seem to work. I also updated my question because removing 'attachment/name-of-image-file' is not exactly what I need. – inwpitrust May 28 '11 at 11:03

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.