переписать 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 файл в виде "?файл=изображение". так что я могу выполнить ваши предложения.
Благодарю вас в продвижение.
С уважением, Метин МЕТЕ
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;
}