Denny
Denny

Reputation: 27

Can't get post_ID inside wordpress plugin

I'm trying to make my first WP plugin, but stuck on simple function - can't get ID of post inside it.

I have tried:

$post_id = get_the_ID();

After that I thought, that my plugin works outside loop and try this:

global $post;
$post_id = $post->ID;

Few hours later I have tried to create function, that get post id after INIT:

function postidfinder () {
    global $post;
    $post_id = $post->ID;
    return $post_id
}
add_action( 'init', 'postfinder' );

Also tried actions: wp_loaded, loop_query.

Please, help get post ID to the plugin. Thanks!

Upvotes: 0

Views: 3858

Answers (1)

Vasim Shaikh
Vasim Shaikh

Reputation: 4512

As far I know, to use post->ID outside of loop, wp_query should be called first.

global $wp_query; 
$postid = $wp_query->post->ID;

Optionally, get_post_id() can work for you, check codex for more.

From the Global $post object :

Global object $post contains a lot of data of the current post. It is very easy to get ID from the object:

global $post;
echo $post->ID;

Using get_the_id() and the_id() functions:

The difference between this two functions is that get_the_id() returns ID of the current post, and the_id() prints it.

echo get_the_id();
the_id();

Upvotes: 1

Related Questions