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.
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!
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 dø
uttalelse.
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.
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.
- comment_approved == '0'):?>
Din kommentar venter på godkjenning
Din kommentar
Ingen kommentarer
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å |
- comment_approved == '0'):?>
Din kommentar venter på godkjenning
av på på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.
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.
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.
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.
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.
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.)
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.
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:
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:
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
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:
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:
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:
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:
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:
Tydeligvis er ikke kommentarlinken inkludert, siden dette må brukes inne i løkken.
Lykke til i WordPress skinning eventyrene!