get the current page id inside wordpress plugin page

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. I tried many codes, but doesn't work

$page_object = get_queried_object();
$page_id     = get_queried_object_id();

 // "Dirty" pre 3.1
 global $wp_query;

$page_object = $wp_query->get_queried_object();
$page_id     = $wp_query->get_queried_object_id();

But it doesn't work for me .

  global $post;
  echo "pageid: ".$post->ID;

This is also not working.

When I try

     global $wp_query;
     $post_obj = $wp_query->get_queried_object();
     $Page_ID = $post_obj->ID;
     echo $Page_ID;

Then a error message appears

Fatal error: Call to a member function get_queried_object() on a non-object in H:\xampp\htdocs\wordpress\wp-content\plugins\wpk\wpk.php on line 876

When I print:

global $wp_query;

then result is:

WP_Query Object
    [query] => 
    [query_vars] => Array

    [tax_query] => 
    [meta_query] => 
    [date_query] => 
    [queried_object] => 
    [queried_object_id] => 
    [request] => 
    [posts] => 
    [post_count] => 0
    [current_post] => -1
    [in_the_loop] => 
    [post] => 
    [comments] => 
    [comment_count] => 0
    [current_comment] => -1
    [comment] => 
    [found_posts] => 0
    [max_num_pages] => 0
    [max_num_comment_pages] => 0
    [is_single] => 
    [is_preview] => 
    [is_page] => 
    [is_archive] => 
    [is_date] => 
    [is_year] => 
    [is_month] => 
    [is_day] => 
    [is_time] => 
    [is_author] => 
    [is_category] => 
    [is_tag] => 
    [is_tax] => 
    [is_search] => 
    [is_feed] => 
    [is_comment_feed] => 
    [is_trackback] => 
    [is_home] => 
    [is_404] => 
    [is_comments_popup] => 
    [is_paged] => 
    [is_admin] => 
    [is_attachment] => 
    [is_singular] => 
    [is_robots] => 
    [is_posts_page] => 
    [is_post_type_archive] => 
    [query_vars_hash] => 
    [query_vars_changed] => 1
    [thumbnails_cached] => 
    [stopwords:WP_Query:private] => 

I don't know how to solve this, how to get the current page id.If you know how to solve this, then I need your support. Thanks in advance.


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 .


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 ]

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;

try to use below code to get the page id


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();

You get see all of the settings and variables in get_defined_vars() function:


In your case you need to get '_GET' and inside 'post'... The code should look like this:

$tmp = get_defined_vars();

Need Your Help

Is Hibernate deprecated?

java hibernate jpa

This morning I was aboard a S-Bahn (German Subway) and I met a fellow student, who works for IBM. What he is doing there is Java EE optimization. I told him about my little project. And he recommen...

java.sql.SQLException: Missing IN or OUT parameter at index:: 1

java jdbc oracle11g

I made some Java 1.6-Oracle11g-JDBC (using OJDBC 6) code (below). I am getting an exception - java.sql.SQLException: Missing IN or OUT parameter at index:: 1