Como o WordPress resolve internamente os permalinks?

Estou fazendo algumas modificações profundas 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 function url_to_postid (), mas WordPress ele auto não seam para usá-lo para resolver permalinks em consultas?

Por exemplo: se eu ligar as funções pre_get_post e procurar uma página ou um post_type personalizado, a consulta fornecida agora inclui “is_page” ou “anexo”, etc., mas se eu for onde digitar um URL aleatoriamente, esses dados não serão exibidos. Onde o WordPress descobre se o URL é um anexo de página | postagem ou não? E como posso me conectar a isso?

Solutions Collecting From Web of "Como o WordPress resolve internamente os permalinks?"

Se você tiver uma olhada na Referência de Ação , você verá todas as ações executadas antes de pre_get_posts . Os dois que você provavelmente quer investigar são parse_request e parse_query (sim, faltam documentação).

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

Quando ocorre uma solicitação de front-end, o arquivo wp-blog-header.php é carregado, que chama wp() , que chama o método main() da class WP , que chama o método parse_request() . No final dessa function, você verá 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