В общем сделал я вчера костыль. В /wp-includes/link-template.php в последний if функции get_attachment_link добавил $link = home_url( 'attachment/' . $object->post_name );
Теперь все работает почти как и задумано, но вместо sitename/%имяприкрепленногофайла% идёт sitename/attachment/%имяприкрепленногофайла%
Можно было бы через .htaccess убрать /attachment/ , но чтобы потом не возникло конфликта, если будет пост и файл с одинаковым названием, решил attachment оставить.
Правда как только обновить Wordpress все слетит, если у кого есть более красивое решение, был бы рад его увидеть.