Hack Together un flux de lien ajouté par l'utilisateur avec des commentaires WordPress

Bien que WordPress ait une * très * vaste collection de plug-ins, il arrive de temps en temps des problèmes pour lesquels aucun plug-in approprié n'est disponible (pour le moment). Lorsque j'ai créé PSDTUTS, j'ai pensé qu'il serait intéressant de proposer aux utilisateurs un moyen de soumettre des liens et d'en créer un lien public. Aujourd'hui, je vais vous montrer comment j'ai piraté une méthode en utilisant les commentaires de WordPress.

Donc, tout d’abord, si vous n'êtes pas sûr de ce que je veux dire par un flux de liens contribués utilisateur, il vous suffit de regarder dans la barre latérale de NETTUTS et vous verrez notre flux de liens public. Vous pouvez vous abonner via RSS ou cliquer pour soumettre vos propres liens. C'est un moyen peu astucieux d'obtenir plus d'interactivité sur le site et de permettre aux lecteurs d'exploiter le trafic des sites TUTS vers leurs propres blogs et didacticiels..

Plan d'action approximatif

La première chose à faire est de préparer un plan pour que tout cela fonctionne. Voici notre plan:

  1. Tout d'abord, nous allons créer un article spécial sur notre blog qui ne contiendra que de brèves instructions de soumission.
  2. Ensuite, nous éditerons le fichier comments.php de sorte que, lorsque cette publication spéciale sera publiée, elle affichera les commentaires différemment.
  3. Sur ces commentaires, nous allons modifier le formulaire de commentaires habituel pour qu'il soit ré-étiqueté de manière à ce que les champs correspondent à une soumission de lien.
  4. Ensuite, nous allons changer la façon dont les commentaires sont affichés sur le message et dans les commentaires RSS afin que cela ait un sens.
  5. Enfin, nous allons créer un peu de code pour extraire les 10 derniers liens et les placer dans la barre latérale.

Maintenant, l’avantage d’utiliser le système de commentaires WordPress classique est qu’il existe déjà un workflow d’approbation et de spam..

Étape 1 - Créer le poste

Pour mon exemple d’aujourd’hui, je vais utiliser le site AUDIOTUTS, qui sera bientôt lancé, et que j’ai passé l’après-midi à préparer. Donc, nous venons de faire une publication régulière avec un titre et un texte, vous pouvez me voir créer le mien dans la capture d'écran:

Et le voici sur le site AUDIOTUTS:

Maintenant, il est important de savoir quel est l'identifiant de la publication pour notre publication. Vous pouvez le savoir en modifiant le message que vous venez de créer et en consultant l'URL de la page de modification. L'URL de mon message de modification est "http://audiotuts.com/wp-admin/post.php?action=edit&post=3". Par conséquent, l'ID de ce message est 3.!

Étape 2 - Modifier Comments.php

Ensuite, nous allons modifier notre fichier comments.php pour rechercher le message avec l'ID de 3 et pour donner aux commentaires de ce message une apparence différente. Notez que si vous souhaitez en savoir plus sur le fichier comments.php, nous vous proposons un excellent didacticiel sur NETTUTS appelé Unraveling the Secrets of Comments.php qui constitue un excellent point de départ pour commencer..

Donc, en gros, nous allons ajouter une grosse déclaration if et si l'ID de publication n'est pas 3, nous ferons nos commentaires habituels, et s'il est 3, nous allons changer la façon dont ils sont affichés ET à quoi le formulaire ressemble . Voici mon fichier comments.php pour AUDIOTUTS (notez que j'ai commenté les commentaires habituels pour le rendre plus clair en ce qui concerne le flux de liens)

 ID! = 3) // Si l'ID de publication n'est * PAS * égal à 3 (notre publication de flux de liens que nous avons créée précédemment), // nous exécutons les commandes comments.php dans cet espace. // // J'ai supprimé le mien pour rendre mon extrait de code un peu plus clair else ?> 

Soumissions utilisateur précédentes

Soumettre un lien

Soumettre un lien

ID); ?>

Analysons donc notre code en deux parties, d’abord le formulaire, puis l’affichage des commentaires..

Étape 3 - Modification du formulaire de commentaire

Par défaut, WordPress utilise quatre champs de formulaire pour autoriser la saisie de commentaires, à savoir:

  1. Auteur
  2. Email
  3. URL
  4. Commentaire

Pour recevoir une soumission de lien, nous avons besoin de trois choses:

  1. Titre du lien
  2. URL
  3. description du lien

Nous allons donc mapper les quatre champs de formulaire à nos trois exigences comme ceci:

  1. Domaine d'auteur> Titre du lien
  2. URL> URL
  3. Commentaire> Description du lien

Et pour le champ email, nous allons passer à un champ de formulaire masqué et lui attribuer la valeur "[email protected]", ce qui facilitera la détection des liens lors de leur approbation dans les commentaires..

Alors voici le formulaire que j'utilise:

 

ID); ?>

Comme vous pouvez le voir, nous avons trois champs et un pour l'adresse email. Et bien que dans le HTML, ces champs de saisie aient toujours leur identifiant habituel (auteur, URL, commentaire), vous pouvez voir dans le texte que l'utilisateur voit qu'ils sont étiquetés comme titre de lien, URL et description du lien. Pour que la forme ressemble à ceci:

Étape 4 - Affichage des soumissions de lien précédentes

Nous allons ensuite formater la manière dont les commentaires précédents apparaissent afin qu'ils utilisent également nos champs de réutilisation de l'auteur, de l'URL et du commentaire. Voici le code que nous utiliserons pour afficher les liens:

  

Alors voici ce que nous faisons

  1. D'abord nous vérifions s'il y a même des commentaires
  2. S'il y en a alors nous allons générer une liste ordonnée
      des entrées
    1. Pour chaque commentaire, nous publions un
    2. élément avec:
      1. Un nom d'auteur lié: n'oubliez pas que nous avons utilisé ces champs pour qu'il s'agisse du titre du lien lié à l'URL.
      2. Le texte du commentaire - ou en d'autres termes notre description du lien.

    Étape 5 - Mise à jour des commentaires RSS

    Maintenant, l’atout majeur de l’utilisation des commentaires est qu’il existe par défaut un flux RSS pour chaque publication WordPress. L'URL est simplement l'adresse du message suivi de "/ feed". Donc, dans notre cas, il s’agit de: http://audiotuts.com/general/user-link-feed/feed/

    Le seul problème est que, par défaut, la mise en forme des commentaires RSS crée un flux qui ressemble à ceci (dans Safari):

    Donc, il y a trois problèmes:

    1. Le titre du flux est "Commentaires sur: Flux de lien d'utilisateur"
    2. Le titre du lien indique "Par:…"
    3. Le lien ne va pas à l'URL, il retourne à AUDIOTUTS

    Donc, pour résoudre ces problèmes, nous devons éditer le modèle de flux. Nous allons donc dans notre installation WordPress pour /wp-includes/feed-rss2-comments.php, qui est le fichier modèle pour les commentaires RSS. Voici ce que le fichier contient par défaut (dans WordPress 2.5.1):

     '; ?>   <?php if ( is_singular() ) printf(__('Comments on: %s'), get_the_title_rss()); elseif ( is_search() ) printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars ['s'])); else printf (__ ('Commentaires pour% s'), get_bloginfo_rss ('name'). get_wp_title_rss ()); ?>       commentaire_post_ID); get_post_custom ($ comment_post-> ID); ?>  <?php if ( !is_singular() )  $title = get_the_title($comment_post->ID); $ title = apply_filters ('the_title_rss', $ title); printf (__ ('Commentez% 1 $ s par% 2 $ s'), $ title, get_comment_author_rss ());  else printf (__ ('By:% s'), get_comment_author_rss ()); ?>     post_password) && $ _COOKIE ['wp-postpass']! = $ comment_post-> post_password):?>      comment_ID, $ comment_post-> ID); ?>    

    Maintenant, nous n'avons pas vraiment besoin de savoir ce que la plupart de cela fait, nous allons simplement passer à travers et changer quelques lignes. La première ligne que nous pouvons corriger est la ligne 18, que nous modifions comme suit:

    printf (__ ('Commentaires sur:% s'), get_the_title_rss ());

    pour ça:

    printf (__ ('% s'), get_the_title_rss ());

    Ensuite, nous allons changer la ligne 42 de ceci:

    printf (__ ('By:% s'), get_comment_author_rss ());

    pour ça:

    printf (__ ('% s'), get_comment_author_rss ());

    Dans les deux cas, nous supprimons simplement les mots supplémentaires - "Commentaires sur:" et "Par:" - afin que le flux ait plus de sens. C'était donc assez facile. La partie suivante est un peu plus compliquée car nous devons changer l’orient de l’URL. Actuellement, il pointe vers la publication afin que l'utilisateur puisse suivre les commentaires sur cette publication. Comme ce modèle contrôle * tous * les flux RSS des commentaires, nous ne voulons pas casser cette fonctionnalité, nous avons donc besoin d'une instruction if comme suit:

     ID! = 3) comment_link ();  else echo $ comment-> comment_author_url; ?> 

    Donc, ici, nous vérifions simplement si la publication a un ID de 3 (qui dans notre exemple est l'ID de publication du flux de lien d'utilisateur) et si c'est le cas, nous publions l'URL, et sinon, nous faisons la fonction comment_link () . Ainsi, le modèle RSS final ressemble à ceci:

     '; ?>   <?php if ( is_singular() ) printf(__('%s'), get_the_title_rss()); elseif ( is_search() ) printf(__('Comments for %s searching on %s'), get_bloginfo_rss( 'name' ), attribute_escape($wp_query->query_vars ['s'])); else printf (__ ('Commentaires pour% s'), get_bloginfo_rss ('name'). get_wp_title_rss ()); ?>       commentaire_post_ID); get_post_custom ($ comment_post-> ID); ?>  <?php if ( !is_singular() )  $title = get_the_title($comment_post->ID); $ title = apply_filters ('the_title_rss', $ title); printf (__ ('Commentez% 1 $ s par% 2 $ s'), $ title, get_comment_author_rss ());  else printf (__ ('% s'), get_comment_author_rss ()); ?>  ID! = 3) comment_link ();  else echo $ comment-> comment_author_url; ?>     post_password) && $ _COOKIE ['wp-postpass']! = $ comment_post-> post_password):?>      comment_ID, $ comment_post-> ID); ?>    

    Et par conséquent, nos flux RSS de commentaires ressemblent maintenant à ceci (pour le flux de liens d’utilisateur et un message régulier):


    Étape 6 - Affichage des 10 derniers éléments de la barre latérale

    Ensuite, nous devons afficher nos 10 articles les plus récents dans la barre latérale. Voici un petit morceau de code pour le faire:

      

    Pour que vous puissiez voir ici nous sommes:

    1. Saisir tous les commentaires approuvés de l'article avec Post ID = 3 sous forme de tableau et les inverser afin que nous obtenions le plus récent en premier
    2. Ensuite, nous créons un
        élément et pour chaque commentaire dans le tableau jusqu'à 10, nous imprimons un
      • élément avec le lien, titre et description

    Et avec un peu de style, voici à quoi ressemble le résultat:

    Fini!

    Alors c'est tout! J'aime également graver le flux via Feedburner afin de pouvoir suivre le nombre de personnes abonnées. Jusqu'à présent, c'est une fonctionnalité très utile. Chez NETTUTS, nous avons environ 150 abonnés au flux de liens. Chez PSDTUTS, nous en avons près de 500. Ils constituent donc un bon moyen de faire connaître à la communauté de nouveaux liens et de garder le site régulièrement mis à jour.

    J'ai récemment fait appel au talentueux talentueux Joshua Blount pour l'intégrer à un plugin WordPress. Une fois que tout sera terminé, je m'assurerai qu'il le publie ici en tant que notre premier extrait de l'open source NETTUTS :-)