janfabry
  • 0
Гуру

Изменение URL вложений?

  • 0

Как я могу изменить формат URL-адресов страниц вложений с /[post-url]/[attachment-name]/ на /media/[attachment-name]/ ? Я понимаю, что могу переопределить вывод get_attachment_link через attachment_link фильтр, но я думаю, мне нужно изменить структуру перенаправления, чтобы WordPress знал, как обрабатывать эти URL-адреса?

Share
  1. Вы можете сделать следующее:

    /* add new rewrite rule */
    function attachment_rewrite( $wp_rewrite ) {
        $rule = array(
            'media/(.+)' => 'index.php?attachment=' . $wp_rewrite->preg_index(1)
        );
    
        $wp_rewrite->rules = $rule + $wp_rewrite->rules;
    }
    add_filter( 'generate_rewrite_rules', 'attachment_rewrite' );
    
    /* redirect standard wordpress attachments urls to new format */
    function redirect_old_attachment() {
        global $wp;
    
        if( !preg_match( '/^media\/(.*)/', $wp->request ) && isset( $wp->query_vars['attachment'] ) ) {
            wp_redirect( site_url( '/media/' . $wp->query_vars['attachment'] ) , 301 );
        }
    }
    add_filter( 'template_redirect', 'redirect_old_attachment' );
    
    • 0

Оставить ответ

You must login to add an answer.