Description

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

Paramètre

$post

(int | WP_Post) (Optionnel) Id ou objet du post. Par défaut la global $post.

Valeur par défaut : null

Retourne

(string | false) Le status du post si succès, false si échec.

Structure de la fonction get_post_status()

Définie dans le fichier wp-includes/post.php à la ligne 897 :

function get_post_status( $post = null ) {
    $post = get_post( $post );

    if ( ! is_object( $post ) ) {
        return false;
    }

    if ( 'attachment' === $post->post_type ) {
        if ( 'private' === $post->post_status ) {
            return 'private';
        }

        // Unattached attachments are assumed to be published.
        if ( ( 'inherit' === $post->post_status ) && ( 0 == $post->post_parent ) ) {
            return 'publish';
        }

        // Inherit status from the parent.
        if ( $post->post_parent && ( $post->ID != $post->post_parent ) ) {
            $parent_post_status = get_post_status( $post->post_parent );
            if ( 'trash' === $parent_post_status ) {
                return get_post_meta( $post->post_parent, '_wp_trash_meta_status', true );
            } else {
                return $parent_post_status;
            }
        }
    }

    /**
     * Filters the post status.
     *
     * @since 4.4.0
     *
     * @param string  $post_status The post status.
     * @param WP_Post $post        The post object.
     */
    return apply_filters( 'get_post_status', $post->post_status, $post );
}

Fonctions et Hook utilisés par get_post_status()

get_post_status

Filtre le status du poste.

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.

Où trouver 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

Retour