Tento tip dnes píši z trochu sobeckých důvodů a to především proto, abych našel řešení problému, až ho budu zase potřebovat. Dnes jsem chtěl získat post id pro funkci get_post_meta dříve, než se začne vypisovat stránka. Podle získané hodnoty jsem chtěl stránku přesměrovat. Hook wp_head se nedá pro přesměrování použít, protože již budou odeslány nějaké znaky a objeví se chyba headers already sent.
Proto jsem chtěl použít hook init. Zda však vyvstává problém s tím, že ještě není k dispozici post id.
Po asi dvou hodinách hledání jsem narazil na řešení pomocí funkce url_to_postid(), která získá post id pomocí url.
Použití:
$postid = url_to_postid( "http://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'] );
Díky této funkci získáte post id i při použití add_action(‚init‘, ‚callback‘);