Získat ID aktuálního příspěvku mimo loop se může někdy hodit. Jak na to?
Tak záleží na tom jak s ID potřebujeme nakládat. Mimo loop můžeme na šabloně zobrazující pouze jeden příspěvek (typicky single.php nebo sidebar této šablony) přistupovat přímo k objektu $post
$postID = $post->ID;
Jde ale o globální proměnnou, proto, když k ní chceme přistupovat z nějaké funkce, musíme se k ní dle toho zachovat:
function moje_funkce(){ global $post; $postID = $post->ID; }
Jak jsem výše zmínil, takto lze bezprobémově přistupovat pouze k ID příspěvku při zobrazení na single.php. Pokud tedy chceme pracovat s ID aktuálního příspěvku například v sidebaru, který se ale zobrazuje i na výpise kategorie, neměli bychom zapomenou na ošetření našeho kódu:
if ( is_single() ) { $postID = $post->ID; }
No a snad jen již pro úplnost, k objektu $post lze přistupovat i krkolomějším způsobem přes objekt $wp_query, který objekt post obsahuje:
global $wp_query; $postID = $wp_query->post->ID;