2014-11-17 28 views
5

Myślę, że to musi być dość podstawowe pytanie, ale dopiero zaczynam. Czy ktoś może spojrzeć na 3 wersje tego samego (?) Kodu poniżej i powiedzieć, jaka jest różnica? Wszystkie wydają się działać dobrze w pętli, nad którą pracuję.get_the_id vs. post-> ID vs. the_id/get_post_meta

Którego użyć: $post->ID, $the_ID lub get_the_id()? Czy konieczne jest posiadanie global $post;?

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

lub

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

lub

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

Dziękujemy za pomoc

Odpowiedz

4

Jeśli jesteś wewnątrz pętli WordPress, a następnie $post->ID jest taka sama jak przy użyciu get_the_ID()

Nie trzeba globalizować $post, ponieważ jest już w zasięgu pętli WordPress.

Nigdy nie widziałem kodu przy użyciu $the_ID, więc chciałbym tego uniknąć.

Najbezpieczniejszym wyborem byłoby wykorzystanie get_the_ID()

+0

Dzięki felipelavinz dla szybkiego i pouczające odpowiedź. Uczyń mnie. To jest moje złe z $ the_ID, ponieważ uważam, że widziałem the_ID(), a nie $ the_ID. Powiedziawszy, że powyższy kod działa dobrze z nim? – TheElear

+0

Nie, 'the_ID()' odtwarza identyfikator $ post->, więc nie zadziała, gdy użyjemy 'get_post_meta()' – felipelavinz

+0

Masz rację. Sprawdziłem dwukrotnie i nie działa z the_ID(). – TheElear