Dans la logique des thèmes WordPress, vous serez vous amené à visiter le code source de votre fichier single.php. Mais qui est-il ? Que fait-il ? A quoi sert-il ? Découverte de ce fichier single.php
Répondons immédiatement à la question « A quoi sert ce single.php ? » Il affiche vos articles sur votre site. Rien de moins que cela. Ce qui le rend quelque peu important. Si vous faites n’importe quoi, n’importe comment dans le code de ce fichier, ce sont l’intégralité de vos articles qui vont partir en sucette. Sensible n’est-ce pas ?
Un base de données et un fichier php on cela de merveilleux. Avec un seul fichier, vous allez pouvoir afficher des milliers d’articles. Le revers de la médaille, comme indiqué précédemment,c’est qu’une seule coquille dans ce fichier, et c’est tout votre contenu qui est vrillé.
En soit, le fichier single n’est pas un monstre de complication. Il serait même assez « rudimentaire » dans sa version de base. En effet, pour afficher votre article, il suffit « simplement » de faire un appel à la boucle WordPress, et le tour est joué.
La boucle va récupérer ce qu’elle doit, là où elle le doit et renvoyer l’article qui va bien à votre visiteur.
Là où cela devient un tantinet plus compliqué pour le novice, c’est la mise en forme de la page. Comme toujours, si le CSS et l’HTML sont pour vous aussi clair que du chinois, autant vous dire que vous allez passer un mauvais moment. D’un autre côté, ce n’est pas en prenant la fuite que vous allez apprendre…
Les marqueurs utiles
Pour votre single.php, vous allez devoir faire appel à certains marqueurs WordPress, regardons les quels
- the_title : affiche le titre de l’article
- the_excerpt : affiche l’extrait de l’article
- the_content : l’article lui même
Vous devrez également utiliser deux fonctions obligatoires, qui vont ouvrir et fermer votre fichier.
- get_header : appel le header de wordpress et ses fonctions liées
- get_footer : idem que précédemment, mais pour le pied de page
En résumé, j’ouvre mon fichier avec la fonction get_header, puis, je place mes marqueurs, enfin, je ferme mon fichier avec get_footer.
En suivant cela, votre page affichera l’en-tête du site, le titre de l’article, son extrait, l’article, et enfin le pied de page.
Il vous « restera » à vous occuper de la mise en page.
Pour vous aider, voici un exemple de fichier single commenté, au format pdf, n’hésitez pas à le télécharger.
Ayez la partigitude, la cool attidude, c'est ça la bloguitude !


#wordpress et le fichier single.php http://t.co/AhhgNRCl
RT @4h18: #wordpress et le fichier single.php http://t.co/6T9rInzk
Bonjour,
Je suis conceptrice en Multimédia et je ne blogue pas (plutôt orientée site web), mais par contre, je trouve très intéressant toutes les possibilités que WP fournit. Pour l’instant j’apprécie le concept de ce CMS et la philosophie de la communauté. Tout ça pour vous dire merci pour l’article et le pdf.
Dommage, le sujet est intéréssant, mais l’article est vraiment incomplet.
Il manque pas mal de « marqueurs utiles », comme la date de l’article, son auteur, le nombre de commentaire et j’en passe.
Il aurait été sympa de parler des fichiers single-$slug.php qui permettent d’afficher un template spécifique selon le slug du Custom Post Type que l’on précise sur le nom du fichier.
Une explication sur la différence entre page.php et single.php pourrait aussi enlever quelques confusions pour les débutants
C’est volontairement incomplet en effet. D’une part, je m’adresse ici à des gens dont le code source est un langage obscure. Ensuite, j’ai choisis de conserver les marqueurs essentiels. Le nom de l’auteur, quand tu blogues seul, c’est pas vraiment utile ou vital, tout comme la date.
Néanmoins, tu aurais télécharger le pdf, tu aurais vu qu’il était très complet et commenté (;
Pour ce qui est du slug, va expliquer ça à une personne à qui tu viens déjà de parler de marqueurs, de css, d’html…
Chaque chose en sont temps, laissons les d’abord digérer ces informations là. Inutile de charger la mule pour la charger, à mon sens.
En effet, je n’avais pas vu le PDF
Un truc m’intrigue, tu n’utilises pas le while( have_posts() ) dans ta loop. Un oubli ? Une erreur ? ou c’est un oubli ?
Ligne 7… if have the_post: …
Mais pas de while non, pas besoin de parcourir la table en entier, sauf à vouloir charger MySql :p
Petite précision, le fait de faire un while ne surcharge en aucun cas mysql, les données dont déjà dans la globale de WP et il ne fait que boucler sur un tableau a un seul élément. un bon exemple est dans le fichier category.php de twentyten où on trouve un the__post() suivi d’un rewind_post, qui permet de recommencer la boucle. Ils le font juste pour calculer une variable
Merci pour l’info ! Je ne savais pas, c’est pour cela que j’avais avancé le truc avec des gants… En tout cas, j’ai appris, merci (:
Donc si je fais juste un « the_post() », c’est censé fonctionné ?
Puisque dans la logique le if n’a pas vraiment d’intérêt. Si on est sur l’article, c’est qu’il existe hihi.
Le if a sa raison d’être, il test si l’article est bien présent, et cas échéant, renvoi un message si tu as supprimé ce dernier pour x ou y raison. C’est une forme de sécurité, histoire d’éviter la page vide.
Je viens de tester, ça fonctionne nickel =_=
Décidément, on en apprend tous les jours avec WP =D
Pour être franc, je n’avais jamais testé et je suis resté sur la boucle « classique ».
Par contre, je ne comprends toujours pas le if. Si il n’est pas là, tu es redirigé vers la page 404 non ?
Ah oui, bonne réflexion tiens ! Il faudrait regarder cela de plus près, mais ce que tu dis semble logique en effet.
En tout cas merci bien.
J’aurai appris un truc bien sympa sur la boucle aujourd’hui
Avec plaisir !
Comme quoi, il n’était pas si « incomplet » cet article hein ! (:
Pingback: L’Hebdo WordPress : WordCamp Paris – Chaine WordPress – Windows 8
Bonjour, je voudrais savoir si il était possible de créer plusieurs fichiers single.php pour gérer l’affichage de différents post!! Si oui comment cela se passe!?
Merci par avance pour votre réponse!
Merde, je ne suis pas le seul fadas encore debout ?! ((:
Donc, oui, c’est possible, mais va falloir bidouiller dur.
Nativement, avec WP, tu ne peux créer des template que pour les custom post. Par exemple, tu as un type de post « cuisine » et un autre « ustensile ». De là, tu peux créer deux templates distinct.
Pour des article classique, ce n’est pas possible. Mais ! En utilisant les tags conditionnels, tu peux bidouilller.
Grosso modo, tu prépares ton css. Puis tu vas encore faire appel aux tags conditionnels et aux include.
La demarche serait alors : si l’id est 123 alors, tu appel tel template.
Si l’id est 456 tu appels tel template.
Tu peux aussi regarder les formats de post et les détourner de leur usage natif. Ils gèrent les photos, les vidéos, et ainsi de suite.
Si ma mémoire est bonne, tu peux créer tes propres formats. Et lors de la rédaction, tu peux donc décider tel ou tel format pour ton article.
Dans tous les cas, va falloir coder.
Juste pour information, il n’y as pas d’API pour ajouter des post format, c’est une taxonomie avec des termes prédéfinis par WP, on peut en ajouter avec l’API basique de WP mais il n’y auras pas d’UI en plus dans l’admin pour ces termes
.
Pour avoir une UI différente avec les posts formats :
http://alexking.org/blog/2011/10/25/wordpress-post-formats-admin-ui
Ah très bien ! Merci pour l’info, j’avoue ne jamais m’y être penché.
Merci pour ta réponse!!!
Y a pas de souci pour bidouiller, c’est ça qui est marrant… enfn pas trop non plus! héhéhé
Bon bah maintenant j’ai plus qu’a me plonger dedans!!!
Merci encore pour cette aide!!