Unraveling hemmelighetene til WordPress 'Comments.php File

WordPress ser ut til å være overalt i disse dager, og det er ikke rart at det er brukervennlig og enkelt tilpasset. I denne opplæringen vil jeg dissekere standard WordPress-temaets kommentarer.php-struktur og gi deg ulike kodestykker for å gjøre huden din lettere.

Som referanse har jeg også tatt med et lite innholdsfortegnelse.

  1. PHP-backend
  2. Generell kode
    1. Forhindre direkte tilgang til comments.php
    2. Krever et passord?
  3. Viser kommentarene
    1. Grunnleggende kommentarsjablettkoder
    2. Det endelige resultatet
  4. Kommentarskjemaet
    1. Oversikt over betinget oversikt
    2. Setter inn skjemaet
  5. Noen små triks
    1. Gravatars
    2. Kommentar nummer
    3. Kommentar lenker
    4. Redigerer kommentarer
    5. Alternerende farger for kommentarer
    6. Viser de tillatte merkene
    7. Kommentarer RSS link
  6. Konklusjon

1. PHP Backend

  post_password)):?> post_password):?>     comment_approved == '0'):?>              

Dette er den røde PHP-koden som gjør din comments.php-filfunksjon. Til en nybegynner kan dette se skremmende ut. Men ikke bekymre deg: med denne opplæringen vil alt i din kommentarfil bli krystallklar!


2. Generell kode

Forhindre direkte tilgang til comments.php

 

Denne linjen med kode forhindrer brukere i å se comments.php ved et uhell. Denne siden er ment å være inkludert på en innleggsside, ikke separat. Du kan vurdere dette som et sikkerhetsmål. I setningen kan du sette inn en melding du vil bli vist til personen som ser comments.php filen, helst a uttalelse.

  

Krever et passord?

post_password)):?> post_password):?>  

Denne setningen (vel, 2 faktisk, men det er mer fornuftig hvis du ser dem som en) kontrollerer om et passord kreves for å se innlegget. Åpenbart, hvis du ikke har passordet for å se innlegget, har du ikke lov til å se kommentarene.

Den første hvis kontrollerer om det er et passordsett. Den andre hvis setningen kontrollerer om det finnes en informasjonskapsel med et passord på plass og viser den aktuelle meldingen når den ikke er der. Du kan tilpasse feilmeldingen ved å plassere det du velger innen den andre hvis uttalelse.


3. Vise kommentarene

  comment_approved == '0'):?>    

Denne første betingede uttalelsen (if ($ kommentarer)) sjekker om det er kommentarer og deretter sløyfer gjennom dem med a for hver uttalelse. Inne i for hver uttalelse, vil du legge merke til følgende betinget utsagn: hvis ($ comment-> comment_approved == '0'). Dette kontrollerer om kommentaren er godkjent, og viser en melding hvis den ikke er godkjent.

Et eksempel på dette ville være følgende stykke kode.

 
  1. comment_approved == '0'):?>

    Din kommentar venter på godkjenning

    Din kommentar

Ingen kommentarer

Grunnleggende kommentarsjablettkoder

For å gjøre dette til et funksjonelt kodestykke, må du bruke mall-kodene som WordPress gir.

Mal tag Beskrivelse
ID av en kommentar
forfatteren av en kommentar
forfatteren av en kommentar, innpakket med en lenke til hans nettside dersom han angav en
typen kommentar; pingback, trackback eller en kommentar
den faktiske kommentaren
datoen den ble lagt ut
tiden den ble lagt ut på

Det endelige resultatet

 
  1. comment_approved == '0'):?>

    Din kommentar venter på godkjenning

    av

ingen kommentarer enda

Setter dette inn i comments.php vil gi deg en bestilt liste med kommentarene og den nødvendige informasjonen eller vise en melding om at det ikke er noen kommentarer.


4. Kommentarskjemaet

Følger du meg fortsatt? Flink! Vi er nesten der. Vi trenger bare å behandle det kommentaren skjemaet ... Ok, kanskje jeg løy om nesten å være der. Kommentaren skjemaet er faktisk en av de hardere delene av hele comments.php hudfilen.

Du blir bombardert med flere betingede utsagn (er påloggingspliktig, er du logget inn, ...). Denne delen er hvor de fleste startskinner har det største problemet: Misplacing formelementer kan forhindre at skjemaet fungerer i det hele tatt, uten å gi en bestemt PHP-feil.

For å gi deg et innblikk i de betingede utsagnene som er involvert i kommentarskjemaet, vil jeg først forklare disse uttalelsene, og ta med HTML senere, forklare hvorfor det skal være hvor det er.

Oversikt over betinget oversikt

        

Det første betingede utsagnet du møter er . Dette kontrollerer i utgangspunktet om kommentarene er åpne. Tydeligvis, hvis kommentarene er stengt, kan du ikke legge inn en kommentar og kommentarskjemaet er ikke nødvendig. Du kan sette meldingen du vil bli vist hvis kommentarene er stengt mellom sist og
.

Den andre betingede uttalelsen () sjekker om du må bli registrert for å legge inn en kommentar og hvis du er logget inn. Hvis betinget utsagn er oppfylt, skal skriptet vise en lenke til et sted der brukere kan logge inn. Hvis registrering ikke er nødvendig eller du allerede er logget inn, vil skriptet fortsette med ellers del og vis skjemaet.

Vår endelige betingelseserklæring sjekker deretter om du er logget inn eller ikke. Åpenbart, hvis du allerede er logget inn, er det ubrukelig å få deg til å fylle ut navn, e-post og nettside igjen.

Setter inn skjemaet

Gratulerer, vi har pløyet gjennom alle betingede uttalelsene i comments.php-filen. Nå er alt som er igjen å legge til skjemaet der inne.

Det første jeg kan høre deg, er: Hvor i helvete er det formen som skal begynne? Vel, du må bare følge sunn fornuft. Det andre betingede utsagnet kontrollerer om du må være logget inn eller ikke, derfor må du ikke vise skjema før dette erklæring. Dermed er hele skjemaet plassert i denne betingede utsagnet.

   

Du må være /wp-login.php?redirect_to="> logget inn for å legge inn en kommentar.

Kommentarene er stengt.

Jeg har også kastet i lenken til påloggingssiden, akkurat som jeg fant den i standard comments.php. Som jeg sa før, sjekker det siste betingede utsagnet om du er logget inn eller ikke. Tydeligvis vises navn, e-post og nettsidefelt bare hvis du ikke er logget inn. La oss kaste dem inn der!

   

Du må være /wp-login.php?redirect_to="> logget inn for å legge inn en kommentar.

Logget inn som /wp-admin/profile.php ">. /wp-login.php?action=logout "title =" Logg ut av denne kontoen "> Logg ut»

Kommentarene er stengt.

Ok! Vi er nesten der! Vi trenger bare å legge til noen enkle linjer med kode som en textarea og en send-knapp. Disse går etter det siste betingede utsagnet, siden det er irrelevant for disse elementene hvis du er logget inn eller ikke.

  

Du må være /wp-login.php?redirect_to="> logget inn for å legge inn en kommentar.

Logget inn som /wp-admin/profile.php ">. /wp-login.php?action=logout "title =" Logg ut av denne kontoen "> Logg ut»

ID); ?>

Kommentarene er stengt.

Denne koden skal være ganske selvforklarende. Et tekstområde for kommentaren, en sende-knapp, et skjult inntastingsfelt med kommentarens fremtidige ID og en PHP-kodebrikke (ID); ?>) WordPress krever å gjøre kommentarformularfunksjonen.

Voila! Det var alt folkens! Du har nå fått fullstendig klar comments.php filen. Se denne filen for å få all PHP og HTML-koden som kreves. Du burde ende opp med dette (jeg erstattet standardhudens comments.php-fil med vår og erstattet litt mindre styling til det.)


5. Noen små triks

Selvfølgelig har du nå bare en grunnleggende comments.php-fil. Det er tonnevis av ting du kan gjøre for å forbedre den ytterligere. Jeg viser noen små tips og triks for å hjelpe deg på veien.

Gravatars

Som av WordPress 2.5, er det en egendefinert WordPress template tag å integrere gravatars. Det trekker gravatar fra e-posten den besøkende angav. Koden for å gjøre dette er veldig enkelt.

Du kan erstatte $ author_email med nifty get_comment_author_email (); funksjon, $ størrelse er høyden (og bredden) av avataren og $ default_avatar er en lenke til standard avatar bilde (vises når kommentereren ikke har gravatar).

Sett inn denne koden inne i for hver sløyfe som viser kommentarene. Utgangen er et bilde med klassene avatar og Avatar- $ størrelse (hvor $ størrelse er størrelsen du angav). Med litt mindre CSS-redigering kan du ende opp med noe slikt:

Kommentar nummer

Jeg har med hensikt utelatt overskrifter i kommentaren.php-filen vi opprettet senere, siden jeg trodde de ville gjøre for overskytende kode i en læringsprosess som er vanskelig nok som den er. Åpenbart, jeg er ikke glemme dem skjønt.

Vanligvis har folk en overskrift som viser noe som ligner på "3 kommentarer så langt". Dette er veldig enkelt å oppnå takket være malepakkene WordPress tilbyr.

 

Det er ganske selvforklarende: $ zero_comments er teksten som skal vises når det ikke er noen kommentarer, $ one_comment når det er en kommentar og $ more_comments når det er flere kommentarer. Et virkelig eksempel ville være slik:

 

jeg brukte % for flere kommentarer, siden comments_number funksjon erstatter deretter % med antall kommentarer (2, 3, ...)

Brukes i vår comments.php-fil, vil du ende opp med noe slikt:

Kommentar lenker

For å vise en lenke til kommentardelen (med antall kommentarer som vises også), bruker du bare følgende kode.

 

De tre første parameterne i denne funksjonen er de samme som ovenfor comments_number funksjon. $ css_class er åpenbart den css-klassen du gir til tag og $ comments_closed er teksten som skal vises når kommentarene er stengt. Når du bruker dette til et tema, er dette en mulig måte å bruke den på.

 

Dette vil da gi deg en link med klassen kommentarer-link

Redigerer kommentarer

Noen ganger vil du umiddelbart redigere en kommentar. Heldigvis, med edit_comment_link-funksjonen, kan du enkelt gå til høyre side for å redigere den, i stedet for å måtte bla til adminpanelet for endelig å nå den kommentaren. Bruk er som sådan:

 

Du må sette dette inne i for hver kommentar loop. Parametrene er ganske åpenbare: $ LINK_TEXT er ankerteksten for rediger lenken, $ before_link og $ after_link henholdsvis er teksten eller koden som skal vises før eller etter lenken.

Dette gjør det veldig enkelt å endre en kommentar; Du kan ganske enkelt legge til en liten "Rediger" -link til din kommentar-metainformasjon (kun synlig av administrasjonen). Slik kan det se ut:

Alternerende farger for kommentarer

Det er mulig at du vil ha alternerende radfarger for dine kommentarer, for å gjøre en klarere separasjon. Å gjøre dette er relativt enkelt. Først legger du til følgende kode øverst på siden:

funksjon alternate_rows ($ i) 
hvis ($ i% 2)
ekko '';
annet
ekko";

Legg deretter til følgende inne i for hver loop (igjen). Du kan bare erstatte

  • med dette:

     >

    Dette vil gi hverandre kommentar til klassen alt, og dermed gjøre det mulig å endre utseendet gjennom CSS.

    Jeg bestemte meg for å gjøre en funksjon for det, å ha mindre rot i din aktuelle temafil. Du kan legge til funksjonsdefinisjonen i din functions.php-fil hvis du vil, men det er mer fornuftig å ha det på toppen av siden din.

    Alternerende rader gjør det lettere å skille forskjellige kommentarer; En gang implementert kan du ha noe slikt:

    Viser de tillatte merkene

    For å vise koden som besøkende har lov til å bruke i sine kommentarer, kan du bare bruke denne lille teksten.

    Tillatte tagger: 

    Da får du bare en liste over kodene som er tillatt i kommentarene dine, slik som dette:

    Kommentarer RSS link

    For å få en link til RSS-feed for kommentarene til et bestemt innlegg, bare sett inn koden nedenfor i din comments.php-fil på stedet der du vil at den skal være.

    Så bare erstatt $ link_test med ankertekst for RSS-lenken.

    Dette kan komme til nytte hvis du vil gi dine besøkende muligheten til å abonnere på kommentaren feed for en bestemt artikkel eller blogginnlegg. Du kan implementere det slik:

    6. Konklusjon

    Jeg håper du har hatt denne * ahem * lille artikkelen om skinning din WordPress comments.php-fil. Du kan få full kode her, med triksene jeg viste med i den:

    • Gravatars,
    • alternative radfarger,
    • rediger lenke,
    • kommentarer rss link.

    Tydeligvis er ikke kommentarlinken inkludert, siden dette må brukes inne i løkken.

    Lykke til i WordPress skinning eventyrene!