La communauté WordPress est en effervescence devant WordPress 3.0, qui sera bientôt disponible. Actuellement en version bêta 2, WordPress 3.0 comportera de nombreuses nouvelles fonctionnalités intéressantes, telles qu'un nouveau thème par défaut et une meilleure gestion des menus. Probablement la plus intéressante de ces fonctionnalités est les types de publication personnalisés. Dans ce didacticiel, nous allons parler de la création et de l'utilisation de types d'articles personnalisés pour créer un thème solide..
Eh bien, selon le codex WordPress:
"Le type de publication fait référence aux diverses données structurées gérées dans le tableau des publications WordPress. Les types de publication personnalisés permettent aux utilisateurs de créer et de gérer facilement des éléments tels que des portefeuilles, des projets, des vidéothèques, des podcasts, des citations, des discussions, ainsi que les utilisateurs peut imaginer."
En gros, cela nous permet aux développeurs de créer de nouveaux types de publications semblables aux types de publication et de page, qui apparaissent toutes dans la navigation principale de l’administrateur de WordPress. Il y a plusieurs avantages à cela. Plus particulièrement, nous n'avons plus besoin de plugins pour créer des types spéciaux, nous pouvons créer un thème qui repose moins sur des champs personnalisés (tels que nous les connaissons), et ils facilitent la gestion du site pour les clients et les utilisateurs non techniques. Au lieu de leur demander de créer un "post" et de veiller à renseigner toutes sortes de champs personnalisés pour la musique, par exemple, nous pouvons simplement leur dire de cliquer sur "Musique" pour ajouter un nouveau post de musique..
Dans ce tutoriel, nous allons:
Tout cela sera fait à partir du fichier functions.php de notre thème. Je modifie le thème 3.0 par défaut, TwentyTen.
La première chose à faire est de dire à WordPress que nous souhaitons enregistrer un nouveau type personnalisé. Voici le code:
add_action ('init', 'product_register'); function product_register () $ args = array ('label' => __ ('Products'), 'singular_label' => __ ('Product'), 'public' => true, 'show_ui' => true, 'type_capacité '=>' post ',' hierarchical '=> false,' rewrite '=> true,' supports '=> array (' title ',' editor ',' thumbnail ')); register_post_type ('product', $ args);
La première ligne est un crochet pour dire à WordPress que nous voulons appeler la fonction product_register ()
lors de l'initialisation. C'est dans cette fonction que l'on enregistre le nouveau type de message.
La fonction register_post_type ()
accepte deux arguments: le nom que nous voulons donner à notre type de publication et une liste d'arguments utilisés pour créer ce type de publication, que nous mettons dans un tableau appelé $ args
. Vous pouvez lire exactement tous les arguments ici, mais je tiens à souligner les plus importants..
Ajoutons nos propres entrées personnalisées pour notre nouveau type. Comme nous pouvons maintenant créer de nouveaux types d'articles, nous pouvons rationaliser davantage les champs personnalisés pour les utilisateurs qui ne sont peut-être pas aussi familiers que nous avec WordPress. Il est à noter ici que cette fonctionnalité est disponible depuis la version 2.5 et jusqu’à présent, elle a été principalement utilisée par les développeurs de plugins. Ici, nous allons ajouter un champ de prix.
ID); $ price = $ custom ["price"] [0]; ?> ID, "prix", $ _POST ["prix"]); ?>
Encore une fois, les deux premières lignes sont des points d'ancrage à indiquer à WordPress lorsque nous souhaitons utiliser certaines fonctions. La première ligne indique que lorsque le panneau d'administration est initialisé, appelez la fonction que nous avons écrite., admin_init ()
. Cette fonction indique à WordPress d'ajouter une zone appelée "Options du produit" à tout message de type "produit" et d'utiliser la fonction. meta_options ()
pour imprimer les champs du formulaire. Vous pouvez en savoir plus sur add_meta_box ici. meta_options ()
obtiendra ensuite toutes les valeurs personnalisées préexistantes et imprimera le champ de formulaire. La deuxième ligne d’action indique que lorsqu’une publication est enregistrée, appelez notre fonction. save_price ()
, qui utilise update_post_meta ()
ajouter ou mettre à jour un champ personnalisé appelé "prix".
Notre dernière étape dans la création d'un type complètement personnalisé consiste à attribuer des noms uniques à sa catégorie et à modifier les étiquettes de colonne. Tout d'abord, le nom de la catégorie personnalisée, ou «taxonomie».
register_taxonomy ("catalogue", tableau ("produit"), tableau ("hierarchique" => true, "label" => "Catalogues", "singular_label" => "Catalogue", "rewrite" => true));
La fonction que nous utilisons est register_taxonomy ()
, que vous pouvez trouver dans le codex ici; il est disponible depuis 2.8. Cela signifie essentiellement que nous voulons créer un nouveau type de catégorie appelé "catalogue" que nous associerons au type "produit". Le dernier argument est un tableau d’informations similaire à ce que nous avons vu le register_post_type ()
une fonction. En fin de compte, le terme «Catalogue» apparaîtra sous notre menu Produits dans l’administrateur WordPress et il se comportera comme les catégories de publication.
Ensuite, nous voulons créer un ensemble personnalisé de colonnes pour notre type de produit..
add_filter ("manage_edit-product_columns", "prod_edit_columns"); add_action ("manage_posts_custom_column", "prod_custom_columns"); fonction prod_edit_columns ($ columns) $ columns = array ("cb" => ""," title "=>" Titre du produit "," description "=>" Description "," price "=>" Prix "," catalogue "=>" Catalogue ",); return $ columns; function prod_custom_columns ($ colonne) global $ post; commutateur ($ colonne) cas "description": the_excerpt (); break; cas "prix": $ custom = get_post_custom (); echo $ custom ["prix"] [0]; case "catalogue": echo get_the_term_list ($ post-> ID, 'catalogue', ", ',',"); break;
Les deux premières lignes sont des crochets indiquant à WordPress que nous voulons des colonnes personnalisées pour le type 'produit'. La première ligne indique que, lors de l’impression de colonnes pour le type de produit, utilisez celles définies dans la fonction prod_edit_columns ()
.
Dans prod_edit_columns ()
, nous avons un tableau clé-valeur où les clés sont utilisées pour référencer certaines informations post, que nous définissons dans la deuxième fonction, prod_custom_columns ()
. Les valeurs de ce tableau sont les en-têtes de colonne. Vous remarquerez peut-être que prod_edit_columns ()
répertorie cinq colonnes, mais nous ne décrivons que les informations d'affichage de trois prod_custom_columns ()
. 'cb' et 'title' font partie d'un ensemble de clés par défaut pour lesquelles WordPress possède déjà des associations. WordPress ne sait pas ce que sont les trois autres, c'est donc à nous de les définir.
Pas trop mal, non? Et maintenant, nous en sommes enfin à la partie amusante: le modèle de thème. Pour créer un modèle de thème pour un type d'article personnalisé, il suffit de nommer le modèle unique.-
ID); $ prix = "$". $ custom ["price"] [0]; ?>>- =$price?>
J'ai ajouté ce code au thème Twentyten dans WordPress 3.0 Beta, car il s'agit du seul thème prenant en charge la nouvelle fonctionnalité, à savoir le système de menus. J'ai copié le modèle single.php, je l'ai renommé single-product.php et j'ai tout remplacé dans la div "content" par le code ci-dessus. Pour tester mon code, je suis allé dans Thèmes-> Menus et j'ai ajouté notre nouveau type à la navigation de mon site. Ensuite, j'ai cliqué sur notre type de message personnalisé.
Emballer
Comme je l'ai dit précédemment, WordPress 3.0 est toujours en version bêta (vous pouvez l'obtenir ici); il reste donc quelques bugs à résoudre et certaines choses peuvent changer dans la version finale. La meilleure chose à faire est d’y entrer et de jouer avec certaines des nouvelles fonctionnalités pour vous familiariser avec les mises à jour / modifications. D'après ce que j'ai vu jusqu'à présent, les choses s'annoncent plutôt bien!