Custom post type ou single post conditionnel???

Custom post type ou single post conditionnel ???

Avec wordpress, on a l’habitude d’apprendre qu’il faut systématiquement créer des customs post des qu’on a un type d’article différent à mettre.

Par exemple, si l’on a que des portfolios à mettre, et qu’on veut pas d’article, plutôt que de créer des portfolios sous forme de custom post, pourquoi ne pas renommer les articles en « portfolios »??

Pour un site de voyage par exemple, on peut vouloir distinguer une partie vidéo, et une partie photo. Les deux auront un design particulier et différent..on pense donc tout de suite aux customs post type;

Le custom post n’est pas toujours la meilleure solution

L’inconvénient avec les customs posts, c’est qu’ils nécessitent beaucoup d’ajustements pour qu’ils fonctionnent comme des articles, pour qu’ils aient une navigation, des catégories distinctes, des images à la une etc…et là je précise, pour quelqu’un découvrant wordpress, les custom post type ne sont pas la chose la plus aisée à mettre en place. On oublie souvent la pagination, les thumbnails, etc…

Parfois l’option de créer plusieurs pages single reste la plus simple à mettre en place, même si ce n’est pas la plus académique.

On peut tout à fait garder nos catégories habituelles, si on veut en rendre une inaccessible ou payante, le plugin « membership pro » est parfait pour ça. Les catégories cachées sont invisibles sur le site, ou alors visibles mais sécurisées par une inscription payante.

Des redirections vers la bonne page single

On peut aussi garder nos articles classiques, créer différents types de singl- .php et rediriger en fonction. Pour avoir différentes single il faut copier coller le code de son fichier single .php dans un nouveau fichier single-default.php et dans le single.php on enlève tout, et on remplace par le code suivant:


$post = $wp_query->post;
if ( in_category('80') ) {
include(TEMPLATEPATH . '/single-photo.php'); } 
else {
include(TEMPLATEPATH . '/single-default.php');
}
?>

Il s’agit la ni plus ni moins d’une condition: dans l’exemple si je suis au sein de la catégorie 80, wordpress fera appel au fichier single-photo.php. En dehors de cette catégorie, il me renvoie le fichier single-default.php dans lequel j’ai placé juste avant le code par défaut.
Ensuite il faut créer autant de single qu’on souhaite de catégories différentes, et rajouter des conditions dans le fichier single.php en fonction de vos besoins. L’intérêt est de pouvoir appliquer un style et un design particulier pour chacun de ces articles.

2 commentaires sur “Custom post type ou single post conditionnel???

  1. Marie-Aude

    Euh… pour l’exemple donné, il y a surtout une solution standard wordpress, qui est le post-format 😀

    pourquoi réinventer autre chose ?

    De plus l’exemple donné a un gros défaut… il se base sur une catégorie, en dur. Donc si un jour, pour une raison quelconque, on veut faire une deuxième catégorie photo, on l’a dans l’os (pas avec les post format)

    Concrètement, pour avoir bossé sur ce genre de tests conditionnels, on a quatre solutions :

    1- utiliser un custom field, dédié à ça (ce que font beaucoup de thèmes qui proposent le choix du template du post dans une métabox), c’est l’extension à l’article du choix du template de page. C’est pas mal
    2- utiliser une taxonomie existante, c’est l’horreur, ça demande du hard coding, ça bloque la structure
    3- utiliser les custom post types, c’est pas si compliqué que ça
    4- utiliser les post-formats, si la distinction est juste pour un affichage différent, mais on est limité aux types de formats existant.

    (je demande à voir pour les « beaucoup d’ajustements », la plupart d’entre eux sont inclus dans le paramétrage de base du custom post type…. )

    Enfin, dernier point, au lieu de faire un single.php, single-photo.php, etc… se plonger dans get_template_part() qui permet de travailler de façon modulaire 🙂

    Bonnes Fêtes

  2. yuyazz

    On a la les bonnes pratiques wordpress, je suis d’accord.Mais compte tenu de l’exemple du site auquel je fais allusion, les custom post type peuvent faire l’affaire, mais je me trouve bloqué au bout d’un moment, les post format, oui mais en trichant( parce que comme tu dis on est limité aux post format proposés par wordpress), finalement cette solution d’une condition sur le single.php, beaucoup le font, et je trouve ca beaucoup plus simple en pratique.Ayant testé les post formats, mon site n’est pas plus rapide, pas mieux référencé, si on commence avec les post formats, on est effectivement très vite limité.Et oui la plupart des parametres sont dans le custom post à la base, mais si l’on veut limiter la recherche, faut du code, si l’on veut une pagination faut du code, si l’on veut les thumbnails faut du code, si on a des metabox ou widgets faut du code pour les intégrer dans le custom post..blablablablabla..donc c’est plus long et comme dit précédemment ca ne change rien dans l’utilisation du site.A part effectivement qu’on ne respecte pas tout à fait les bonnes pratiques wordpress, quoique ca soit une pratique php comme une autre..il y a plétore d’agence qui font du wordpress, et qui font du php classique sans se servir des outils et fonctions par défaut, ou des bonnes pratiques, et leur site tournent très bien.En tout cas merci à lumière de lune pour ces éclaircissements!!!j’ai effectivement tout recodé en pensant « post format » ,et comme finalement c’etait pas du tout une bonne idée, puisque limité, je suis revenu en arrière, et ca reste beaucoup plus simple.Mais vous ne verrez jamais un thème avec des single-default.php , donc cette pratique c’est pour ses sites perso!!!Sur ca elle a raison!!

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.