WordPress semble être omniprésent ces jours-ci et il n’est pas étonnant de par sa facilité d’utilisation et sa facilité de personnalisation. Dans ce didacticiel, je vais disséquer la structure comments.php du thème WordPress par défaut et vous donner divers extraits de code pour faciliter votre skinning..
Pour votre référence, j'ai également inclus une petite table des matières.
post_password)):?> post_password):?> comment_approved == '0'):?>
C'est le code PHP brut qui fait fonctionner votre fichier comments.php. Pour un novice, cela peut paraître intimidant. Cependant, ne vous inquiétez pas: avec ce tutoriel, tout dans votre fichier de commentaires deviendra limpide!
Cette ligne de code empêche les utilisateurs d'afficher comments.php par accident. Cette page est destinée à être incluse dans une page de publication, pas séparément. Vous pourriez considérer cela comme une mesure de sécurité. Dans la déclaration, vous pouvez insérer le message que vous souhaitez afficher à la personne qui consulte le fichier comments.php, de préférence un message. mourir
déclaration.
post_password)):?> post_password):?>
Cette déclaration (en fait, 2, mais cela a plus de sens si vous les voyez en un) vérifie si un mot de passe est requis pour voir le message. Évidemment, si vous n'avez pas le mot de passe pour voir le message, vous n'êtes pas autorisé à voir les commentaires.
La première si
vérifie si un mot de passe est défini. La deuxième si
statement vérifie si un cookie avec un mot de passe est en place et affiche le message correspondant lorsqu'il n'est pas là. Vous pouvez personnaliser le message d'erreur en plaçant ce que vous choisissez dans le second si
déclaration.
comment_approved == '0'):?>
Cette première déclaration conditionnelle (si ($ commentaires)
) vérifie s'il y a des commentaires, puis les passe en boucle avec un pour chaque
déclaration. À l'intérieur de pour chaque
déclaration, vous remarquerez la déclaration conditionnelle suivante: if ($ comment-> comment_approved == '0')
. Ceci vérifie si le commentaire a été approuvé et affiche un message s'il n'est pas encore approuvé..
Un exemple de ceci serait le morceau de code suivant.
- comment_approved == '0'):?>
Votre commentaire est en attente de validation
Votre commentaire
Sans commentaires
Pour en faire un élément de code fonctionnel, vous devez utiliser les balises de modèle fournies par WordPress..
Tag de modèle | La description |
---|---|
| l'identifiant d'un commentaire |
| l'auteur d'un commentaire |
| l'auteur d'un commentaire, entouré d'un lien vers son site s'il en a spécifié un |
| le type de commentaire; pingback, rétrolien ou un commentaire |
| le commentaire réel |
| la date de publication |
| l'heure à laquelle il a été posté |
- comment_approved == '0'):?>
Votre commentaire est en attente de validation
par sur àaucun commentaire pour l'instant
Insérer ceci dans comments.php vous donnerait une liste ordonnée avec les commentaires et les informations requises ou afficherait un message indiquant qu’il n’y en avait pas..
Tu me suis toujours? Bien! Nous y sommes presque. Nous avons juste besoin de traiter ce formulaire de commentaire… D'accord, j'ai peut-être menti sur le fait d'être presque là. Le formulaire de commentaire est en fait l’une des parties les plus difficiles de l’ensemble du fichier de peau comments.php.
Vous serez bombardé de plusieurs instructions conditionnelles (un identifiant est-il nécessaire, êtes-vous connecté,…). C’est là que la plupart des skinners débutants rencontrent le plus de problèmes: des éléments mal placés pourraient empêcher la forme de fonctionner du tout, sans donner d'erreur PHP spécifique.
Pour vous donner un aperçu des déclarations conditionnelles impliquées dans le formulaire de commentaire, je vais d'abord expliquer ces déclarations et inclure le code HTML ultérieurement pour expliquer pourquoi elles devraient se trouver à l'endroit où elles se trouvent..
La première déclaration conditionnelle que vous rencontrez est . Cela vérifie si les commentaires sont ouverts. De toute évidence, si les commentaires sont fermés, vous ne pouvez pas poster de commentaire et le formulaire de commentaire n'est pas nécessaire. Vous pouvez mettre le message que vous souhaitez afficher si les commentaires sont fermés entre le dernier
et
.
La deuxième déclaration conditionnelle () vérifie si vous devez être enregistré pour publier un commentaire et si vous êtes connecté. Si l'instruction conditionnelle est remplie, le script doit afficher un lien vers un lieu où les utilisateurs peuvent se connecter. Si l'enregistrement n'est pas requis ou si vous êtes déjà connecté, le script continue avec le
autre
séparer et afficher le formulaire.
Notre dernière déclaration conditionnelle vérifie ensuite si vous êtes connecté ou non. Évidemment, si vous êtes déjà connecté, il est inutile de vous obliger à saisir votre nom, votre adresse de courrier électronique et votre site Web à nouveau..
Félicitations, nous avons exploré toutes les instructions conditionnelles du fichier comments.php. Maintenant, tout ce qui reste à faire est d'ajouter le formulaire ici.
La première chose que je puisse vous entendre dire est la suivante: où diable va-t-il commencer? Eh bien, il vous suffit de suivre le bon sens. La deuxième instruction conditionnelle vérifie si vous devez être connecté ou non. Par conséquent, vous ne devez afficher aucun formulaire avant cette instruction. Ainsi, l'intégralité du formulaire se trouve dans cette instruction conditionnelle..
Vous devez être /wp-login.php?redirect_to="> connecté pour poster un commentaire.
Les commentaires sont fermés.
J'ai également ajouté le lien vers la page de connexion, tout comme je l'ai trouvé dans le commentaire par défaut, comments.php. Comme je l'ai dit précédemment, la dernière instruction conditionnelle vérifie si vous êtes connecté ou non. De toute évidence, les champs de saisie du nom, du courrier électronique et du site Web ne sont affichés que si vous n'êtes pas connecté. Jetons-les là.!
Vous devez être /wp-login.php?redirect_to="> connecté pour poster un commentaire.
Les commentaires sont fermés.
Bien! Nous y sommes presque! Nous devons simplement ajouter quelques lignes de code simples, telles qu'une zone de texte et un bouton d'envoi. Ceux-ci vont après la dernière instruction conditionnelle, car il est sans importance pour ces éléments si vous êtes connecté ou non.
Vous devez être /wp-login.php?redirect_to="> connecté pour poster un commentaire.
Les commentaires sont fermés.
Ce code devrait être assez explicite. Un champ textarea pour le commentaire, un bouton d'envoi, un champ de saisie masqué avec le futur identifiant des commentaires et un extrait de code PHP (ID); ?>
) WordPress nécessite de rendre la fonction de formulaire de commentaire.
Voila! C'est tout les gens! Vous avez maintenant votre fichier comments.php entièrement prêt. Consultez ce fichier pour obtenir tout le code PHP et HTML requis. Vous devriez vous retrouver avec ceci (j'ai simplement remplacé le fichier comments.php du skin par défaut par le nôtre et y ai ajouté un style mineur.)
Bien entendu, vous n’avez plus qu’un fichier de base comments.php. Il y a beaucoup de choses que vous pourriez faire pour l'améliorer. Je vais énumérer quelques trucs et astuces pour vous aider sur votre chemin.
A partir de WordPress 2.5, il existe un tag template WordPress personnalisé pour intégrer des gravatars. Il tire le gravatar de l'email que le visiteur a entré. Le code pour faire ceci est très simple.
Vous pouvez remplacer $ author_email
avec le chouette get_comment_author_email ();
une fonction, taille de $
est la hauteur (et la largeur) de l'avatar et $ default_avatar
est un lien vers l'image d'avatar par défaut (affichée lorsque le commentateur n'a pas de gravatar).
Insérer ce code à l'intérieur du pour chaque
boucle qui affiche les commentaires. La sortie est une image avec les classes avatar
et avatar- $ taille
(où taille de $
est la taille que vous avez spécifiée). Avec quelques modifications mineures de CSS, vous pourriez vous retrouver avec quelque chose comme ceci:
J'ai volontairement laissé de côté les en-têtes dans le fichier comments.php que nous avons créé plus tard, car je pensais qu'ils généreraient un excès de code dans un processus d'apprentissage assez difficile en l'état. Évidemment, je ne les oublie pas bien.
Habituellement, les gens ont un en-tête affichant quelque chose de similaire à "3 commentaires jusqu'à présent". C’est très facile à réaliser grâce aux balises de gabarits proposées par WordPress.
C'est assez explicite: $ zero_comments
est le texte à afficher quand il n'y a pas de commentaires, $ one_comment
quand il y a un commentaire et $ more_comments
quand il y a plusieurs commentaires. Voici un exemple concret:
j'ai utilisé %
pour plusieurs commentaires, depuis le commentaires_numéro
la fonction remplace alors le %
avec le nombre de commentaires (2, 3,…)
Utilisé dans notre fichier comments.php, vous obtiendrez quelque chose comme ceci:
Pour afficher un lien vers la partie commentaires (avec le nombre de commentaires affichés également), vous utilisez simplement le code suivant.
Les 3 premiers paramètres de cette fonction sont les mêmes que ci-dessus commentaires_numéro
une fonction. $ css_class
est évidemment la classe css que vous donnez à la tag et
$ comments_closed
est le texte à afficher à la fermeture des commentaires. Lorsque vous appliquez ceci à un thème, c'est un moyen possible de l'utiliser.
Cela vous donnerait alors un lien avec la classe commentaires-lien
Parfois, vous aurez envie de modifier immédiatement un commentaire. Heureusement, avec la fonction edit_comment_link, vous pouvez facilement accéder à la bonne page pour la modifier, au lieu de devoir accéder à votre panneau d'administration pour atteindre ce commentaire. L'utilisation est en tant que telle:
Vous devez mettre cela à l'intérieur du pour chaque
boucle de commentaire. Les paramètres sont assez évidents: $ link_text
est le texte d'ancrage pour le lien d'édition, $ before_link
et $ after_link
sont respectivement le texte ou le code à afficher avant ou après le lien.
Cela facilite vraiment la modification d'un commentaire. vous pouvez simplement ajouter un petit lien "Modifier" à votre méta-information de commentaire (visible uniquement par l'administrateur). Voici à quoi cela pourrait ressembler:
Il est possible que vous souhaitiez avoir des couleurs de rangées alternées pour vos commentaires, pour une séparation plus claire. Faire cela est relativement facile. Tout d'abord, ajoutez le code suivant en haut de la page:
fonction alternate_rows ($ i)
si ($ i% 2)
écho '';
autre
écho";
Puis ajoutez ce qui suit à l’intérieur du pour chaque
boucle (encore). Vous pouvez simplement remplacer avec ça:
Cela donnera à tous les autres commentaires la classe alt
, permettant ainsi de changer leur apparence via CSS.
J'ai décidé de faire une fonction pour cela, d'avoir moins de fouillis dans votre fichier de thème réel. Vous pouvez ajouter la définition de la fonction dans votre fichier functions.php si vous le souhaitez, mais il est plus logique, à mon avis, de la placer en haut de votre page..
Les lignes alternées facilitent la distinction entre différents commentaires; une fois implémenté, vous pourriez avoir quelque chose comme ceci:
Pour afficher le code que les visiteurs sont autorisés à utiliser dans leurs commentaires, utilisez simplement ce petit extrait.
Tags autorisés:
Ensuite, vous obtiendrez simplement une liste des balises autorisées dans vos commentaires, comme ceci:
Pour obtenir un lien vers le flux RSS des commentaires d'une publication, insérez simplement le code ci-dessous dans votre fichier comments.php à l'endroit où vous le souhaitez..
Puis remplacez simplement $ link_test
avec le texte d'ancrage pour le lien RSS.
Cela peut s'avérer utile si vous souhaitez donner à vos visiteurs la possibilité de s'abonner au fil de commentaires pour un article ou un article de blog spécifique. Vous pouvez l'implémenter comme ceci:
J'espère que vous avez apprécié ce petit article * ahem * sur le dépouillement de votre fichier comments WordPress.php. Vous pouvez obtenir le code complet ici, avec les astuces que j'ai montrées incluses dans celui-ci:
De toute évidence, le lien de commentaires n'est pas inclus car il doit être utilisé à l'intérieur de la boucle..
Bonne chance dans vos aventures de skinning WordPress!