Como o WordPress lida com links permanentes?

11

O WordPress corrige automaticamente os links permanentes (URLs), mesmo que sejam inseridos incorretamente. Por exemplo, o WordPress o levará example.com/some-postaté mesmo se você digitar example.com/idontexist/some-postou mesmoexample.com/some

Pode ser que, o WordPress use o RegEx como ou algum algoritmo de comparação que se compara da direita para a esquerda e, se encontrar uma correspondência, levará você para a página mesmo se houver /.*/à esquerda. Apenas um palpite! Como o WordPress faz isso?

Edit: Eu também notei que as verificações de arquivos .htaccess para virtuais de arquivos / diretórios usando !fe !de redireciona a solicitação para index.php na pasta blog.

Praveen Lobo
fonte

Respostas:

6

A função redirect_canonical em /wp-includes/canonical.php é chamada em qualquer URL e tentará adivinhar a URL desejada pelo usuário e redirecioná-la para lá, quando uma URL não existir. Ele tem uma quantidade enorme de código para fazer isso para todos os tipos de erros comuns.

Otto
fonte
1
Voto positivo para "quantidade enorme": D.
Travis Northcutt
1

É bem simples. O WordPress faz uso do operador LIKE na consulta SQL para adivinhar o URL completo do URL parcial quando é uma página 404

Verifique este código extraído da redirect_guess_404_permalink()função /wp-includes/canonical.php

$where = $wpdb->prepare( 'post_name LIKE %s', $wpdb->esc_like( get_query_var( 'name' ) ) . '%' );
Pramod Jodhani
fonte