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
