get the current page id inside wordpress plugin page

前端 未结 6 881
情深已故
情深已故 2020-12-14 02:25

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.

相关标签:
6条回答
  • 2020-12-14 02:44

    try to use below code to get the page id

    get_the_ID();
    
    0 讨论(0)
  • 2020-12-14 02:46

    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;
    
    0 讨论(0)
  • 2020-12-14 02:50

    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']);
    
    0 讨论(0)
  • 2020-12-14 02:51

    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;
    
    0 讨论(0)
  • 2020-12-14 02:51

    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();
    }
    
    0 讨论(0)
  • 2020-12-14 03:06

    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

    0 讨论(0)
提交回复
热议问题