Paramètre

$post(int|WP_Post)optionnel

Id 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()

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 );
}
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.

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

Retour