Как сделать ЧПУ для sitename/?attachment_id=1 в Wordpress?

Есть страницы прикрепленных файлов, в них строятся ссылки sitename.com/?attachment_id=1 таким образом, где 1 id прикрепленного файла.

Необходимо, чтобы вместо такой ссылки была ссылка типа sitename.com/%имяприкрепленногофайла%

Не спрашивайте зачем это нужно, я сам теряюсь в догадках.

Для всех остальных ссылок чпу настроено, но как быть именно со страницей прикрепленного файла не могу понять...
  • Вопрос задан
  • 3921 просмотр
Решения вопроса 1
@Borgia Автор вопроса
В общем сделал я вчера костыль. В /wp-includes/link-template.php в последний if функции get_attachment_link добавил $link = home_url( 'attachment/' . $object->post_name );

Теперь все работает почти как и задумано, но вместо sitename/%имяприкрепленногофайла% идёт sitename/attachment/%имяприкрепленногофайла%

Можно было бы через .htaccess убрать /attachment/ , но чтобы потом не возникло конфликта, если будет пост и файл с одинаковым названием, решил attachment оставить.

Правда как только обновить Wordpress все слетит, если у кого есть более красивое решение, был бы рад его увидеть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
AloneCoder
@AloneCoder
[object Object]
Вот такое можно добавить в functions.php
add_action('generate_rewrite_rules', 'attachment_rewrite_rule_14924');

function attachment_rewrite_rule_14924($wp_rewrite){
  $new_rules = array();
  $new_rules['attachment/(\d*)$'] = 'index.php?attachment_id=$matches[1]';
  $wp_rewrite->rules = $new_rules + $wp_rewrite->rules;
}


Мопед не мой
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы