get_the_id vs. post->ID vs. the_id / get_post_meta

I think it must be pretty basic question but I am only starting. Can someone have a look at the 3 versions of the same (?) code below and say what the difference is? All of them seem to work fine in the loop I am working on.

Which should be used: $post->ID, $the_ID or get_the_id()?
Is it necessary to have global $post;?

Read More
global $post;
$content = get_post_meta( $post->ID, ‘my_custom_field', true );
echo  $content;

or

$content = get_post_meta( $the_ID, ‘my_custom_field', true );
echo  $content;

or

$content = get_post_meta( get_the_id(), ‘my_custom_field’, true );
echo  $content;

Many thanks for your help

Related posts

Leave a Reply

1 comment

  1. If you’re inside a WordPress loop, then $post->ID it’s the same as using get_the_ID()

    You shouldn’t need to globalize $post since it’s already in the scope of a WordPress loop.

    I’ve never seen code using $the_ID, so I would avoid using that.

    The safest choice would be to use get_the_ID()