Ce este $post_id? Este o variabilă globală în WordPress?
Cum poate fi utilizat $post_id
în timp ce afișezi postări în single.php?
Este o variabilă globală?

Nu, $post_id
nu este o variabilă globală. Poți vedea o listă cu variabilele globale create de WordPress aici: https://codex.wordpress.org/Global_Variables
$post_id
este doar o convenție de denumire comună pentru o variabilă care conține un ID de post. În tutoriale și exemple de cod, aceasta indică faptul că valoarea așteptată este un ID de post, dar tot trebuie să-i setezi valoarea undeva în cod.
Dacă te afli în The Loop, poți obține ID-ul paginii sau postului curent din loop cu $post_id = get_the_ID()
. Dacă ești în afara The Loop și vrei să obții ID-ul postului sau paginii curente interogate, poți folosi $post_id = get_queried_object_id()
.
O altă modalitate prin care ai putea obține un ID de post este într-un callback de hook. De exemplu, în hook-ul post_thumbnail_size
, callback-ul primește un ID de post ca al doilea argument:
function wpse_299132_post_thumbnail_size( $size, $post_id ) {
return $size;
}
add_filter( 'post_thumbnail_size', 'wpse_299132_post_thumbnail_size', 10, 2 );
Dar acesta este doar numele folosit în documentație pentru a clarifica ce conține variabila. Poți să-i spui oricum. De exemplu, și aceasta este o variantă validă:
function wpse_299132_post_thumbnail_size( $size, $myPostId ) {
return $size;
}
add_filter( 'post_thumbnail_size', 'wpse_299132_post_thumbnail_size', 10, 2 );
$myPostId
este al doilea argument, deci va conține un ID de post. Dar cum îl numești nu contează.

În unele cazuri, cum ar fi atunci când ești în afara Loop-ului, poate fi necesar să folosești
get_queried_object_id() în loc de get_the_ID().
$postID = get_queried_object_id();
