Ce este $post_id? Este o variabilă globală în WordPress?

28 mar. 2018, 05:51:46
Vizualizări: 14.3K
Voturi: 10

Cum poate fi utilizat $post_id în timp ce afișezi postări în single.php?

Este o variabilă globală?

1
Comentarii

când pui o întrebare, ar trebui să furnizezi cât mai mult context relevant posibil. Te rog să editezi întrebarea ta pentru a include toate informațiile relevante, nu le cere oamenilor să ghicească ce anume vrei să spui.

Mark Kaplun Mark Kaplun
28 mar. 2018 06:40:50
Toate răspunsurile la întrebare 3
0
11

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ă.

28 mar. 2018 06:26:17
0

$post_id nu este o variabilă globală. $post este o variabilă globală. Puteți folosi:

global $post;
$post_id = $post->ID;
28 mar. 2018 10:08:22
0

Î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();

14 apr. 2020 23:22:35