get_post_type()

Définition : get_post_type() indique le type d’un contenu WordPress, comme post, page ou un Custom Post Type enregistré. Elle aide à adapter un traitement au modèle de données réellement rencontré.

Comprendre et utiliser

À quoi sert ce terme ?

Elle évite de supposer que tout contenu est un article classique. Une même routine peut différencier les pages, les fiches métier et les publications ordinaires pour décider d’un affichage ou d’un contrôle.

Fonctionnement technique

La fonction accepte un identifiant ou un objet, ou utilise l’objet global de la publication si aucun argument n’est transmis. Elle retourne une chaîne ou false selon le contexte.

Dans quels contextes l’utiliser ?

Utiliser dans un callback où plusieurs types de contenus sont possibles. Dans un hook save_post, vérifier également révisions, autosaves et capacités avant d’écrire des métadonnées.

Cas concret : ATOOLPHA

ATOOLPHA affiche un libellé distinct pour un objet page et pour un type de contenu personnalisé utilisé par une extension.

Exemple de code commenté

Extrait PHP destiné à un plugin ou à un template WordPress, dans le contexte indiqué ; pas au contenu HTML de l’article.

<?php
$post = get_post( 123 );
if ( $post instanceof WP_Post ) {
    $type = get_post_type( $post );
    if ( 'page' === $type ) {
        echo '<span>Page WordPress</span>';
    } elseif ( 'post' === $type ) {
        echo '<span>Article WordPress</span>';
    }
}

Décryptage de l’exemple

Le test strict compare le slug interne du type. Le nom public d’un type personnalisé ne sera pas automatiquement affiché par ce code limité aux deux types natifs.

Résultat attendu

Une page ou un article obtient un libellé adapté ; les autres contenus ne sont pas faussement classés.

Exercice pratique et vérification

Créer un article, une page et un contenu personnalisé de test. Relever les slugs retournés et vérifier que seuls les cas prévus activent le rendu.

Précautions et limites

Le type ne remplace pas une vérification d’autorisation. Un même type peut contenir des publications privées ou accessibles uniquement à certains utilisateurs.

À ne pas confondre

get_post_type() indique le type du contenu ; get_post_status() renseigne son état éditorial, ce sont deux dimensions différentes.

Diagnostic avancé

Si le résultat est false, vérifier l’existence de l’objet et la registration du type personnalisé avant de supposer une panne du Core.

Choix d’architecture et déploiement

Pour concevoir des traitements réutilisables, distinguer le type du contenu des capacités associées à son édition. Cette séparation évite de lier des règles d’autorisation au slug d’un Custom Post Type, qui peut être modifié ou réutilisé.

Contrôle avant intégration

Contrôler la visibilité des types personnalisés, les slugs réservés et l’absence d’autorisation fondée uniquement sur le type.

Notions associées

  • Custom Post Type (CPT)
  • get_post_status()
  • WP_Post

Références officielles

Bouton retour en haut de la page