¿Cómo obtener el ID de la página actual fuera del bucle?
Definitivamente debería ser la respuesta correcta. Estoy tratando de obtener el ID actual de una entrada o una página, y esta es la única manera que me da el ID correcto sin tener que codificar condiciones manualmente.

he intentado todas las soluciones encontradas en Google pero nada funcionó

es difícil saber cuáles son "todas las soluciones que encontraste" :) asegúrate de que el código esté en una función, que llames a esa función y comienza a depurar con un echo de algo más antes que tenga que ser visible...

no conseguí obtener el id usando función, y las "soluciones" son
global $wp_query;
$thePostID = $wp_query->post->ID;
global $post;
$thePostID = $post->ID;
global $wp_query;
$page = $wp_query->get_queried_object();
$page_id = $page->ID;
$page_id = get_queried_object_id();

Para aquellos a quienes esto todavía no les está funcionando, necesitarán usar algún tipo de add_action (pueden elegir cuál quieren usar). En mi ejemplo, esto devolverá el ID de la página actual sin ningún problema, independientemente de si está en una carpeta de plugin, en functions.php o en otro lugar.
add_action('template_redirect', 'showid');
function showid(){
global $wp_query;
$theid = intval($wp_query->queried_object->ID);
// Muestra el ID de la página actual
echo $theid;
}
¡Buena suerte y feliz programación!

Estoy de acuerdo, esta es la única que funcionó para mí. Necesitaba comprobar si la página o entrada actual estaba en una categoría y forzar una redirección si lo estaba, pero hacerlo antes del bucle. Este hook de acción es lo que necesitaba para que el objeto consultado funcionara para mí.
