Como o Wordpress resolve os permalinks internamente?

4

Eu estou fazendo um modding profundo do sistema de reescrita e post_types personalizados, mas antes que eu possa continuar, devo descobrir como o WordPress lida com as reescritas.

Eu encontrei a função url_to_postid () mas o próprio WordPress não usa para resolver links permanentes em consultas?

Por exemplo: Se eu ligar para as funções pre_get_post, e procurar uma página ou um post_type personalizado, a consulta fornecida agora inclui "is_page" ou "attachment" etc, mas se i onde digitar uma URL aleatoriamente, esses dados não serão exposição. Onde o WordPress descobre se o URL é uma página | posttype | anexo ou não? E como posso me ligar a isso?

    
por Robin Westerlundh 29.12.2013 / 01:28

1 resposta

2

Se você der uma olhada na Referência de ação , verá todas as ações executadas antes de% código%. Os dois que você provavelmente investigará são pre_get_posts e parse_request (sim, esses estão faltando na documentação).

A parte em que você provavelmente está mais interessado é parse_query , onde as regras de reescrita são comparadas com o URI solicitado. Você pode vê-lo na fonte aqui .

Quando uma solicitação de front end acontece, o arquivo parse_request é carregado, o que chama wp-blog-header.php , que chama o wp() método da classe main() , que chama o WP . Na parte inferior dessa função, você verá veja onde a ação parse_request() é executada .

EDITAR

Veja também esta página no Codex para mais informações detalhadas: Visão geral da consulta

    
por Milo 29.12.2013 / 02:08

Tags