I need to get the current page id
in WordPress plugin page outside the loop. And the code I wrote for getting current page id
is in my plugin page.
try to use below code to get the page id
get_the_ID();
You can get ID
of the post in current page outside the loop using the technique below:
global $wp_query;
$post_id = $wp_query->post->ID;
$post = get_post( $post_id );
$slug = $post->post_name;
You get see all of the settings and variables in get_defined_vars()
function:
var_dump(get_defined_vars());
In your case you need to get '_GET' and inside 'post'... The code should look like this:
$tmp = get_defined_vars();
var_dump($tmp['_GET']['post']);
Chosen answer is working only if you put it in the Wordpress loop. Outside it will render useless.
This is working everywhere:
global $wp_query;
$postID = $wp_query->post->ID;
I guess that this is the proper solution:
$id = get_queried_object_id();
which equals to:
function get_queried_object_id() {
global $wp_query;
return $wp_query->get_queried_object_id();
}
get_the_ID(); or $post->ID;
returns the current page or post id in Wordpress.
But you need to ensure that your post is saved in wordpress post table. Other wise you can't get the id , simply because of it is not an entry in wordpress database.
If it is a static page and it's not an entry in wordpress post then, get_the_ID()
didn't return anything.
For example : get_the_ID() didn't go to work in post archive pages , administration pages in wordpress backend etc.
So as per this question you are trying to get the id of the page that is a backend plugin setting page or any archive page .
UPDATE
Method to get the current post id in wordpress
(1) global $post; $post->ID();
(2) global $wp_query; $post_id = $wp_query->get_queried_object_id();
(3) global $wp_query; $post_id = $wp_query->post->ID;
(4) get_the_ID();
[ It is recommended that this tag must be within The Loop. ]
see this
function get_the_ID() {
$post = get_post();
return ! empty( $post ) ? $post->ID : false;
}
ie get_the_ID() return the id of current $post .
(5) get_query_var('page_id')
[ it will not going to work if we use pretty permalink ]
https://codex.wordpress.org/Function_Reference/get_query_var