Is there a user-facing interface to edit an attachment’s permalink?

If you use the tag at all you know that permalinks for image attachments end up like blog.com/2011/03/18/post-permalink/attachment-permalink.

The URL extension from the post permalink appears to be based on the attachment’s title on first save. To my knowledge, however, this permalink does not update when the image title is edited in the media tools. I cannot find a way to do edit attachment permalinks at all, actually.

Read More

Is there a user-facing interface I’m missing that will let users edit an attachment’s permalink?

Related posts

Leave a Reply

4 comments

  1. This’ll add a slug field to the edit attachment page, which’ll allow you to independently change it when and how you choose to.

    Drop it into a plugin or your theme’s functions.php;

    function wpse_12405_edit_attachment_name( $fields, $post ) {
        $fields['post_name'] = array(
            'label' => __( 'Slug' ),
            'value' => $post->post_name,
        );
    
        return $fields;
    }
    
    add_filter( 'attachment_fields_to_edit', 'wpse_12405_edit_attachment_name', 10, 2 );
    
    function wpse_12405_save_attachment_name( $attachment, $POST_data ) {
        if ( ! empty( $POST_data['post_name'] ) )
            $attachment['post_name'] = $POST_data['post_name'];
    
        return $attachment;
    }
    
    add_filter( 'attachment_fields_to_save', 'wpse_12405_save_attachment_name', 10, 2);
    
  2. The solution of TheDeadMedic works fine, but I would recommend adding sanitize_title() in saving filter to make sure that the value is always a valid slug:

    function __save_attachment_name( $attachment, $POST_data )
    {
        if ( !empty( $POST_data['post_name'] ) )
            $attachment['post_name'] = sanitize_title( $POST_data['post_name'] );
        return $attachment;
    }
    add_filter( 'attachment_fields_to_save', '__save_attachment_name', 10, 2);
    
  3. WordPress stores the original filename in the database as a unique identifier for the attachment. Unfortunately, as far as I know, there isn’t any way of changing it within the UI. It’s not super convenient, but you’d most likely have to re-upload the file.