переписать URL-адрес вложения


Я хочу изменить адрес ссылки на вложение файла на wordpress [пример: http://www.sitename.com/category/sub-category/article.html /вложение/изображение и т.д.]. я провел исследование по этому вопросу несколько дней, но не смог получить никаких результатов..

Глядя на структуру соединения! после ".html", "/" марк выглядит не очень хорошо, чтобы приходить. также "вложение" в качестве исправления этого раздела для пользователей WordPress в разных языках отсутствует очень большое количество. я имею в виду; rewrite.php ссылки на файл автора для "автора" из базы. это тоже можно отредактировать с помощью простой функции;

global $wp_rewrite;
$wp_rewrite->author_base = 'example';
$wp_rewrite->flush_rules();

Я не могу для этого "вложение":/я так старался, но не смог справиться с этой проблемой...

В любом случае, я хотел спросить тебя!

Я не программист ( я графический дизайнер ). я хочу сделать, так что, возможно, все может выйти за рамки логики (:image.php файл, так как этого достаточно, чтобы открыть URL-адрес, более понятный для меня...

Эта ссылка; http://www.sitename.com/category/sub-category/article.html /вложение/изображение

Является ли таковым; http://www.sitename.com/category/sub-category/article.html ?файл=изображение

Я не знаю, не открыл бы image.php файл в виде "?файл=изображение". так что я могу выполнить ваши предложения.

Благодарю вас в продвижение.

С уважением, Метин МЕТЕ

Author: Metin METE, 2010-12-07

1 answers

На самом деле, вы всегда можете просто использовать параметр запроса, даже если у вас включены "красивые" постоянные ссылки. Поэтому вместо /category/sub-category/article.html/attachment/image вы можете перейти к /?attachment=image. Единственный случай, когда это "ломается", - это когда вы переходите к /category/sub-category/article.html?attachment=image, потому что WordPress запутывается: он пытается запросить сообщение и вложение одновременно. Однако с этим очень просто справиться: проверьте запрос, и если это вложение, удалите другие параметры.

add_action( 'parse_request', 'wpse5015_parse_request' );
function wpse5015_parse_request( $wp )
{
    if ( array_key_exists( 'attachment', $wp->query_vars ) ) {
        unset( $wp->query_vars['name'] );
        unset( $wp->query_vars['year'] );
        unset( $wp->query_vars['monthnum'] );
    }
}

Теперь вам нужно только изменить сгенерированный URL-адреса вложений. Поскольку они почти в правильном формате, мы можем просто немного поискать и заменить:

add_filter( 'attachment_link', 'wpse5015_attachment_link', 10, 2 );
function wpse5015_attachment_link( $link, $id )
{
    // If the attachment name is numeric, this is added to avoid page number conflicts
    $link = str_replace( 'attachment/', '', $link );
    $attachment = get_post( $id );
    $link = str_replace( '/' . $attachment->post_name . '/', '?attachment=' . $attachment->post_name, $link );
    return $link;
}
 2
Author: Jan Fabry, 2010-12-08 20:19:14