it-swarm-pt.tech

Desativar completamente as páginas de anexos

Gostaria de desativar completamente todas as páginas de anexo. Eu pesquisei no Google, mas há apenas informações sobre como redirecionar para a postagem pai ou página inicial . Isso não é o que eu chamaria de uma solução elegante. Por que introduzir permalinks desnecessários que redirecionam para a página inicial? Não poderia ser desativado completamente?

5
Maciej Krawczyk

Você pode filtrar regras de reconfiguração padrão e removê-las para anexos:

function cleanup_default_rewrite_rules( $rules ) {
    foreach ( $rules as $regex => $query ) {
        if ( strpos( $regex, 'attachment' ) || strpos( $query, 'attachment' ) ) {
            unset( $rules[ $regex ] );
        }
    }

    return $rules;
}
add_filter( 'rewrite_rules_array', 'cleanup_default_rewrite_rules' );

Não se esqueça de salvar novamente seus permalinks uma vez. O WordPress gerará novas regras sem nada relacionado a anexos.

Agora, o URL da página de anexo fornece 404. Você também pode adicionar esse redirecionamento para evitar a página 404, pois é inútil nesse caso. Mas não tenho certeza de como capturar o redirecionamento - is_attachment () não funcionará se as regras de reescrita forem removidas.

Atualização:

O WordPress ainda oferecerá à página de anexos URLs bonitos na biblioteca de mídia e na caixa de diálogo de inserção de mídia. Você pode filtrar isso também:

function cleanup_attachment_link( $link ) {
    return;
}
add_filter( 'attachment_link', 'cleanup_attachment_link' );

Neste caso, mesmo quando você inserir o seu anexo no post e selecionar "Link to attachment page", a imagem será inserida sem o link .

6
Ihor Vorotnov