get_post_status( int|WP_Post $post = null )
Retourne le status d'un poste en se basant sur son id.
Paramètre
$post
(int|WP_Post)optionnelId ou objet du post. Par défaut la global $post.
Valeur par défaut : null
Description / Informations supplémentaires
Si l'id du poste est celui d'un attachement alors le status retourné sera celui du poste parent.
La fonction retournera l'un des status de poste suivant : 'publish', 'future', 'draft', 'pending' ou 'private'.
Retourne
(string|false) Le status du post si succès, false si échec.
Déclaration et structure de la fonction get_post_status()
get_post_status()
est déclarée dans le fichier wp-includes/post.php
à la ligne 1226 :
function get_post_status( $post = null ) {
// Normalize the post object if necessary, skip normalization if called from get_sample_permalink().
if ( ! $post instanceof WP_Post || ! isset( $post->filter ) || 'sample' !== $post->filter ) {
$post = get_post( $post );
}
if ( ! is_object( $post ) ) {
return false;
}
$post_status = $post->post_status;
if (
'attachment' === $post->post_type &&
'inherit' === $post_status
) {
if (
0 === $post->post_parent ||
! get_post( $post->post_parent ) ||
$post->ID === $post->post_parent
) {
// Unattached attachments with inherit status are assumed to be published.
$post_status = 'publish';
} elseif ( 'trash' === get_post_status( $post->post_parent ) ) {
// Get parent status prior to trashing.
$post_status = get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );
if ( ! $post_status ) {
// Assume publish as above.
$post_status = 'publish';
}
} else {
$post_status = get_post_status( $post->post_parent );
}
} elseif (
'attachment' === $post->post_type &&
! in_array( $post_status, array( 'private', 'trash', 'auto-draft' ), true )
) {
/*
* Ensure uninherited attachments have a permitted status either 'private', 'trash', 'auto-draft'.
* This is to match the logic in wp_insert_post().
*
* Note: 'inherit' is excluded from this check as it is resolved to the parent post's
* status in the logic block above.
*/
$post_status = 'publish';
}
/**
* Filters the post status.
*
* @since 4.4.0
* @since 5.7.0 The attachment post type is now passed through this filter.
*
* @param string $post_status The post status.
* @param WP_Post $post The post object.
*/
return apply_filters( 'get_post_status', $post_status, $post );
}
Fonctions utilisées par get_post_status()
apply_filters()
Appel les fonctions qui ont été attaché à un filtre (hook).
get_post_meta()
Retourne la valeur d'un champ de méta-donnée pour un id de poste donné.
get_post()
Retourne les données d'un poste en passant l'id ou l'objet d'un poste.
get_post_status()
Retourne le status d'un poste en se basant sur son id.
Hook utilisé par get_post_status()
get_post_status
Filtre le status du poste.
Où est utilisée la fonction get_post_status()
dans le CMS WordPress
Exemple
$current_status = get_post_status ( $postID );
if ( false !== $current_status ) {
if ( $current_status == 'publish' ) {
echo 'publish';
} elseif ( 'draft' == $current_status )
echo 'draft';
}
} else {
echo 'Le status de poste n'est pas disponible à ce stade.';
}
Sources
Codex WordPress : get_post_status()
Autres fonctions dans le même fichier : wp-includes/post.php