Neste artigo, você descobrirá como usar a API Rewrite Rule do WordPress para criar seus próprios links exclusivos para o seu site. O WordPress já usa essa funcionalidade quando você seleciona uma nova estrutura permalink para reescrever urls no WordPress.
O que é Rewriting?
Reescrita de URL é quando você muda o conteúdo que é exibido pelo servidor. Normalmente, quando você digitar uma URL no servidor web simplesmente irá procurar todos os arquivos nesse local. Mas com o Rewriting você pode mostrar a mesma URL, mas mudando no back-end onde o servidor vai procurar o conteúdo. Portanto, podemos ter uma URL de /seu-site-1/, mas dizer ao servidor para exibir o conteúdo que está localizado em /seu-site-1/wp-content/themes/seu-tema/index.php.
Como o WordPress usa o Rewrite Rule para personalizar suas urls?
Quando você for em “Configurações –> Permalinks”, você terá de escolher como quer que suas URLs apareçam no WordPress. Tem muitas opções diferentes para escolher. O padrão que o WordPress vai usar é “?p={post_id}”, este é o valor que é armazenado na tabela wp_posts em que a API de reescrita de urls vai escrever. Quando você selecionar uma nova estrutura permalink, irá armazená-las na tabela de wp_options. Isto significa que nós podemos ter URLs com apenas o título do post e o WordPress vai saber que será preciso procurar na coluna post_name para encontrar o post correto para exibir.
Alterando as urls você terá resultados como este a seguir.
http://www.seu-site.com/?p=1
para
http://www.seu-site.com/titulo-do-post
Existem dois principais benefícios de mudar a estrutura de URL. Uma delas é por razões de SEO, com palavras-chave na URL para dar um impulso nos rankings. Outra vantagem é que é mais amigável para o usuário clicar em um link com palavras-chave na URL.
E como o WordPress faz isso?
Quando você alterar a estrutura permalink do WordPress ele vai fazer uma mudança no arquivo .htaccess que irá enviar todo o tráfego do site para o arquivo index.php. Se você abrir o seu arquivo .htaccess você vai ver algo semelhante a isto.
# BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.php [L] </IfModule> # END WordPress
E no arquivo index.php é onde serão feitas algumas verificações para saber qual é o arquivo correto a ser entregue ao usuário. Isso funcionará muito bem se você quiser usar as configurações padrão em seu site. Caso você decida criar suas próprias regras personalizadas você precisa usar a função add_rewrite_rules() para criar um novo regex padrão de como reescrever suas páginas .
Crie suas próprias regras de reescrita de url no WordPress
function custom_rewrite_basic()
{
add_rewrite_rule(
‘^leaf/([0-9]+)/?’,
‘index.php?page_id=$matches[1]’,
‘top’
);
}
add_action( ‘init’, ‘custom_rewrite_basic’ );
NOTA: Quando você utilizar $matches[] para recuperar os valores de uma URL correspondente, os dados de captura de grupo começa em 1, não 0.
IMPORTANTE: Não se esqueça de limpar e regenerar os permalinks depois de modificar as regras de reescrita. Caso contrário, às vezes você poderá ter problemas no WordPress retornando uma página 404 para seus posts e isso porque você esqueceu de atualizar os permalinks. Na administração do WordPress, selecione Configurações -> Permalinks e apenas clique em salvar alterações sem quaisquer alterações. Agora, você pode acessar a mesma página que http://meu-site.com/leaf/95.
Você pode saber mais acessando o link a seguir. https://codex.wordpress.org/Rewrite_API/add_rewrite_rule