web-dev-qa-db-fra.com

Qu'est-ce que $ post_id? est-ce une variable globale dans wordpress?

$ post_id comment il peut être utilisé en faisant écho à posts dans single.php?

est-ce variable globale?

3
Nimesh

Non, $post_id n'est pas une variable globale. Vous pouvez voir une liste des variables globales créées par WordPress ici: https://codex.wordpress.org/Global_Variables

$post_id est simplement une convention de dénomination commune pour une variable contenant un identifiant de publication. Dans les tutoriels et les exemples de code, il indique que la valeur doit être un ID de publication, mais vous devez toujours définir sa valeur ailleurs dans le code.

Si vous êtes dans La boucle vous pouvez obtenir l'ID de la page en cours ou poster dans la boucle avec $post_id = get_the_ID(). Si vous êtes en dehors de The Loop et souhaitez obtenir l'ID du message ou de la page actuellement interrogé (e), vous pouvez utiliser $post_id = get_queried_object_id().

Vous pouvez également obtenir un identifiant de publication via un rappel automatique. Par exemple, dans le post_thumbnail_size hook, le rappel reçoit un ID de poste en tant que deuxième argument:

function wpse_299132_post_thumbnail_size( $size, $post_id ) {
    return $size;
}
add_filter( 'wpse_299132_post_thumbnail_size', 'wpse_299132_post_thumbnail_size', 10, 2 );

Mais ce n’est que le nom utilisé dans la documentation pour préciser le contenu de la variable. Vous pouvez appeler ça comme vous voulez. Ceci est également valable, par exemple:

function wpse_299132_post_thumbnail_size( $size, $myPostId ) {
    return $size;
}
add_filter( 'wpse_299132_post_thumbnail_size', 'wpse_299132_post_thumbnail_size', 10, 2 );

$myPostId est le deuxième argument, il contiendra donc un identifiant de publication. Mais peu importe ce que vous appelez.

6
Jacob Peattie

$ post_id n'est pas une variable globale. $ post est une variable globale. Vous pouvez utiliser

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