Hack Împreună un feed-ul Linked Cont User cu WordPress Comentarii

Deși WordPress are o colecție * foarte * extinsă, plug-in-uri, acum și din nou lucrurile vin pentru care nu există plug-inuri adecvate disponibile (încă). Când am construit PSDTUTS, m-am gândit că ar fi grozav să existe o modalitate prin care utilizatorii să trimită link-uri și să creeze un feed public. Astăzi vă voi arăta cum am hacked împreună o metodă folosind comentarii WordPress ".

Deci, înainte de toate, dacă nu sunteți sigur ce vreau să spun printr-un Feed Linked by User, tot ce trebuie să faceți este să priviți în bara laterală a NETTUTS și veți vedea feedul public de link-uri. Puteți să vă abonați prin RSS sau să faceți clic pentru a trimite propriile dvs. link-uri. Este o modalitate foarte bună de a obține mai multă interactivitate în site și de a permite cititorilor să exploateze traficul site-urilor TUTS înapoi la propriile lor bloguri și tutoriale.

Plan de acțiune dur

Primul lucru pe care trebuie să-l faceți este să veniți cu un plan de funcționare a tuturor. Iată planul nostru:

  1. Mai intai vom crea o postare speciala pe blogul nostru care va avea doar cateva instructiuni de trimitere scurta
  2. Apoi vom edita fișierul comments.php astfel încât atunci când apare acest mesaj special, acesta va afișa comentarii în mod diferit
  3. Cu privire la aceste comentarii vom schimba formularul de comentarii obișnuite pentru a fi etichetate nouă, astfel încât câmpurile să se potrivească unei trimiteri de link-uri
  4. Apoi vom schimba modul în care comentariile se afișează atât în ​​post, cât și în comentariile RSS, astfel încât să aibă sens
  5. În cele din urmă vom face un pic de cod pentru a trage ultimele 10 link-uri și a le plasa în bara laterală

Acum, avantajul utilizării sistemului regulat de comentarii al WordPress este că există deja un flux de aprobare și de captare a spam-ului.

Pasul 1 - Creați postarea

Pentru exemplul meu astăzi, voi folosi site-ul AUDIOTUTS, care va fi lansat în curând, pe care l-am petrecut după-amiaza. Deci, vom face doar un post regulat cu un titlu și un text, puteți să mă vedeți făcându-mă pe ecran:

Și aici este pe site-ul AUDIOTUTS:

Acum este important să aflați ce este Post ID-ul pentru postarea noastră. Puteți afla acest lucru prin editarea postării pe care tocmai ați creat-o și vizualizarea adresei URL a paginii de editare a postărilor. Adresa URL a postării mele de editare este "http://audiotuts.com/wp-admin/post.php?action=edit&post=3", prin urmare, ID-ul postului este de 3!

Pasul 2 - Editați comentariile

Apoi vom modifica fișierul comments.php pentru a căuta postarea cu ID de 3 și pentru a face comentariile postului respectiv să arate diferit. Rețineți că, dacă sunteți interesat să aflați mai multe despre fișierul comments.php, avem un tutorial grozav aici pe NETTUTS numit Unraveling the Secrets of Comments.php, care este un loc minunat pentru a începe.

Deci, în principiu, vom adăuga o declarație mare if și dacă Post ID nu este 3, atunci vom face comentariile noastre regulate și dacă este vorba de 3 atunci vom schimba modul în care sunt afișate și cum arată formularul . Iată fișierul meu comments.php pentru AUDIOTUTS (rețineți că am comentat comentariile obișnuite pentru a le face mai clare în ceea ce privește feedul de linkuri)

 ID! = 3) // Dacă ID-ul postului este * NOT * egal cu 3 (postarea noastră de feed link pe care am creat-o mai devreme), // vom executa chestiile regulate comments.php în acest spațiu. // Am șters pe mine pentru a face fragmentul meu de cod puțin mai clar altceva ?> 

Trimiterile anterioare ale utilizatorilor

Trimiteți o legătură

Trimiteți o legătură

ID); ?>

Deci, să analizăm codul nostru în două părți, mai întâi formularul și apoi afișarea comentariului.

Pasul 3 - Modificarea formularului de comentarii

În mod implicit, există patru câmpuri de formular pe care WordPress le utilizează pentru a permite introducerea de comentarii, acestea fiind:

  1. Autor
  2. E-mail
  3. URL-
  4. cometariu

Pentru a primi o trimitere de link-uri avem nevoie de trei lucruri:

  1. Titlul legăturii
  2. URL-
  3. Descrierea legaturii

Așadar, vom mapa cele patru câmpuri de formular la cele trei cerințe ale noastre:

  1. Câmp autor> Titlul legăturii
  2. Adresa URL> URL
  3. Comentariu> Descrierea link-ului

Și pentru câmpul de e-mail, vom trece acest câmp la un câmp de formular ascuns și îi vom oferi o valoare "[email protected]", ceea ce va face link-urile mult mai ușor de observat atunci când sunt aprobate în aprobarea comentariilor.

Deci, iată forma pe care o folosesc:

 

ID); ?>

După cum puteți vedea, avem trei câmpuri și una pentru adresa de e-mail. Și, deși în HTML aceste câmpuri de intrare au în continuare id-urile obișnuite (autor, url, comentariu), puteți vedea în text că utilizatorul vede că acestea sunt etichetate ca titlu de link, URL și descriere a link-ului. Astfel că forma arată astfel:

Pasul 4 - Afișarea trimiterilor de legătură anterioare

În continuare, vom formata modul în care apar comentariile anterioare, astfel încât să se folosească de reutilizarea câmpurilor pentru autor, url și comentarii. Iată codul pe care îl vom folosi pentru afișarea legăturilor:

  

Deci aici este ceea ce facem

  1. Mai întâi verificăm dacă există chiar comentarii
  2. Dacă există atunci vom genera o listă ordonată
      de intrări
    1. Pentru fiecare comentariu pe care îl publicăm
    2. element cu:
      1. Un nume de autor legat - rețineți că am folosit aceste câmpuri astfel încât acesta să fie de fapt titlul de link legat la adresa URL
      2. Textul comentariului - sau cu alte cuvinte descrierea link-ului nostru.

    Pasul 5 - Actualizarea comentariilor RSS

    Acum, lucrurile minunate despre utilizarea comentariilor sunt că, în mod implicit, există un feed RSS pentru fiecare post WordPress. Adresa URL este pur și simplu adresa pentru post, urmată de '/ feed'. Deci, în cazul nostru, este: http://audiotuts.com/general/user-link-feed/feed/

    Singura problemă este că, în mod implicit, formatarea comentariilor RSS va crea un feed care arată astfel (în Safari):

    Deci, există trei probleme:

    1. Titlul feed-ului este "Comentarii pe: Feed Link utilizator"
    2. Titlul link-ului spune "De: ..."
    3. Linkul nu merge la adresa URL, merge înapoi la AUDIOTUTS

    Deci, pentru a rezolva aceste probleme, trebuie să editați șablonul feed. Așa că intrăm în instalarea noastră WordPress /wp-includes/feed-rss2-comments.php, care este fișierul șablon pentru comentariile RSS. Iată ce implicit are fișierul în el (în 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'])); altceva printf (__ ('Comentarii pentru% s'), get_bloginfo_rss ('nume') get_wp_title_rss ()); ?>       comment_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', titlul $); printf (__ ("Comentariu pe% 1 $ s de% 2 $ s"), $ title, get_comment_author_rss ());  altceva printf (__ ('Prin:% s'), get_comment_author_rss ()); ?>     post_password) && $ _COOKIE ['wp-postpass']! = $ comment_post-> post_password):?>      cod_ID, $ comment_post-> ID); ?>    

    Acum nu avem nevoie să știm ce face majoritatea, ci vom trece mai departe și vom schimba câteva linii. Prima linie pe care o putem rezolva este Linia 18, pe care o schimbăm de la aceasta:

    printf (__ ("Comentarii pe:% s"), get_the_title_rss ());

    la acest:

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

    Apoi vom schimba linia 42 din aceasta:

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

    la acest:

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

    În ambele cazuri, pur și simplu eliminăm cuvintele suplimentare - "Comentarii pe:" și "Prin:" - pentru ca feedul să aibă mai mult sens. Așa că era destul de ușor. Următorul bit este un pic mai complicat deoarece trebuie să schimbăm unde indică adresa URL. Acum, în momentul de față se îndreaptă spre post, astfel încât utilizatorul să poată urma comentariile despre postarea respectivă. Din moment ce acest șablon controlează * toate * comentariile feed RSS, nu vrem să spargem acea funcționalitate, așa că avem nevoie de o declarație if, după cum urmează:

     ID! = 3) comentariu_link ();  altceva echo $ comment-> comment_author_url; ?> 

    Deci, aici pur și simplu verificăm dacă postul are un ID de 3 (care, în exemplul nostru, este ID-ul postului pentru feedul de link-uri utilizator) și dacă acesta este, atunci vom publica adresa URL și dacă nu facem funcția regulată comment_link () . Astfel, șablonul RSS final arată astfel:

     „; ?>   <?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'])); altceva printf (__ ('Comentarii pentru% s'), get_bloginfo_rss ('nume') get_wp_title_rss ()); ?>       comment_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', titlul $); printf (__ ("Comentariu pe% 1 $ s de% 2 $ s"), $ title, get_comment_author_rss ());  altceva printf (__ ('% s'), get_comment_author_rss ()); ?>  ID! = 3) comentariu_link ();  altceva echo $ comment-> comment_author_url; ?>     post_password) && $ _COOKIE ['wp-postpass']! = $ comment_post-> post_password):?>      cod_ID, $ comment_post-> ID); ?>    

    Și ca rezultat, feed-ul nostru RSS feed-uri arată acum (pentru feed-ul de link-uri utilizator și un post regulat):


    Pasul 6 - Afișarea ultimelor 10 elemente din bara laterală

    Apoi trebuie să afișăm ultimele noastre 10 elemente în bara laterală. Iată o mică bucată de cod pentru a face asta:

      

    Deci puteți vedea aici că suntem:

    1. Prindeți toate comentariile aprobate din postare cu Post ID = 3 ca matrice și inversând-le astfel încât să primim cele mai recente
    2. Atunci vom crea o
        element și pentru fiecare comentariu în matricea de până la 10 vom imprima un
      • element cu legătura, titlul și descrierea

    Și, cu un pic de stil, iată cum arată rezultatul:

    Terminat!

    Deci asta este! De asemenea, îmi place să ard feed-ul prin Feedburner, pentru a putea urmări câte persoane se abonează. Până acum a fost o caracteristică utilă, aici la NETTUTS avem aproximativ 150 de abonați la feed-ul de legătură, la PSDTUTS avem aproape 500. Deci, acestea reprezintă o modalitate bună de a lăsa comunitatea să știe despre noi linkuri și să păstreze site-ul în mod regulat la curent.

    Recent am contractat fabulos talentatul Joshua Blount pentru a construi acest lucru într-un plugin WordPress. Odată ce totul este terminat, mă asigur că îl eliberează aici ca primul nostru bit de NETTUTS open source :-)

    Cod