WordPress lijkt tegenwoordig overal, en het is geen wonder dat het gebruiksvriendelijk is en gemakkelijk kan worden aangepast. In deze zelfstudie zal ik de standaardreactie.php-structuur van het WordPress-thema analyseren en verschillende codefragmenten weergeven om het villen gemakkelijker te maken.
Ter referentie, ik heb ook een kleine inhoudsopgave opgenomen.
post_password)):?> post_password):?> comment_approved == '0'):?>
Dit is de onbewerkte PHP-code die je comments.php-bestandsfunctie maakt. Voor een beginneling kan dit er intimiderend uitzien. Maakt u zich echter geen zorgen: met deze tutorial wordt alles in uw opmerkingenbestand glashelder!
Deze coderegel voorkomt dat gebruikers comments.php per ongeluk kunnen bekijken. Deze pagina is bedoeld om te worden opgenomen in een berichtpagina, niet apart. Je zou dit als een veiligheidsmaatregel kunnen beschouwen. In de instructie kunt u elk bericht invoegen dat u wilt weergeven aan de persoon die het bestand comments.php bekijkt, bij voorkeur a dood gaan
uitspraak.
post_password)):?> post_password):?>
Deze verklaring (nou ja, 2 eigenlijk, maar het is logischer als je ze als één bekijkt) controleert of een wachtwoord nodig is om het bericht te bekijken. Het is duidelijk dat als je het wachtwoord niet hebt om het bericht te bekijken, je de reacties ook niet mag bekijken.
De eerste als
controleert of er een wachtwoord is ingesteld. De seconde als
statement controleert of er een cookie met een wachtwoord aanwezig is en geeft het bijbehorende bericht weer als het er niet is. U kunt de foutmelding aanpassen door in de tweede te plaatsen wat u wilt als
uitspraak.
comment_approved == '0'):?>
Deze eerste voorwaardelijke verklaring (if ($ reacties)
) controleert of er opmerkingen zijn en doorloopt ze vervolgens met een foreach
uitspraak. Binnen in de foreach
verklaring, zult u de volgende voorwaardelijke verklaring opmerken: if ($ comment-> comment_approved == '0')
. Hiermee wordt gecontroleerd of de opmerking is goedgekeurd en wordt een bericht weergegeven als dit nog niet is goedgekeurd.
Een voorbeeld hiervan is het volgende stuk code.
- comment_approved == '0'):?>
uw reactie is in afwachting van goedkeuring
Jouw commentaar
Geen commentaar
Om dit een functioneel stuk code te maken, moet u de sjabloonlabels gebruiken die WordPress biedt.
Sjabloonlabel | Omschrijving |
---|---|
| de ID van een opmerking |
| de auteur van een opmerking |
| de auteur van een opmerking, omwikkeld met een link naar zijn website als hij er een heeft opgegeven |
| het soort commentaar; pingback, trackback of een opmerking |
| de eigenlijke reactie |
| de datum waarop het werd geplaatst |
| de tijd waarop het werd geplaatst |
- comment_approved == '0'):?>
uw reactie is in afwachting van goedkeuring
door op opNog geen reacties
Als u dit invoegt in comments.php, krijgt u een geordende lijst met de opmerkingen en de vereiste informatie of geeft u een bericht weer waarin staat dat er geen opmerkingen zijn.
Volg je me nog steeds? Goed! We zijn er bijna. We hoeven alleen dat commentaarformulier te verwerken ... Oké, misschien heb ik gelogen dat ik er bijna was. Het commentaarformulier is eigenlijk een van de hardere delen van het volledige skinbestand van comments.php.
Je wordt gebombardeerd met verschillende voorwaardelijke uitspraken (is een login vereist, ben je ingelogd, ...). Dit deel heeft de meeste beginnende skinners het meeste probleem: misplaatste formulierelementen kunnen voorkomen dat de vorm werkt helemaal niet, zonder een specifieke PHP-fout te geven.
Om u een inzicht te geven in de voorwaardelijke verklaringen die bij het commentaarformulier horen, zal ik eerst die verklaringen uitleggen en de HTML later opnemen met uitleg waarom het moet zijn waar het is.
De eerste voorwaardelijke verklaring die je tegenkomt is . Dit controleert in principe of de opmerkingen open zijn. Het is duidelijk dat als de opmerkingen zijn gesloten, je geen reactie kunt plaatsen en het reactieformulier niet nodig is. U kunt het bericht dat u wilt weergeven plaatsen als de opmerkingen tussen de laatste gesloten zijn
en
.
De tweede voorwaardelijke verklaring () controleert of u moet worden geregistreerd om een opmerking te plaatsen en of u bent aangemeld. Als aan de voorwaardelijke verklaring is voldaan, moet het script een koppeling bevatten naar een plaats waar gebruikers zich kunnen aanmelden. Als registratie niet vereist is of als u al bent aangemeld ingelogd, gaat het script verder met de
anders
deel en toon het formulier.
Onze definitieve voorwaardelijke verklaring controleert vervolgens of u bent aangemeld of niet. Vanzelfsprekend is het nutteloos om je naam, e-mail en website opnieuw in te vullen als je al bent ingelogd.
Gefeliciteerd, we hebben alle voorwaardelijke instructies in het comments.php-bestand geploegd. Nu is alles wat overblijft om het formulier daar aan toe te voegen.
Het eerste dat ik je kan horen denken is: waar zal die vorm in godsnaam beginnen? Nou, je moet gewoon gezond verstand volgen. De tweede voorwaardelijke verklaring controleert of u ingelogd moet zijn of niet, daarom zou u tot na deze verklaring geen formulier moeten tonen. Dus de hele vorm bevindt zich binnen deze voorwaardelijke verklaring.
U moet /wp-login.php?redirect_to= zijn"> ingelogd om een reactie te plaatsen.
De opmerkingen zijn gesloten.
Ik heb ook de link naar de inlogpagina geworpen, net zoals ik deze vond in de standaard comments.php. Zoals ik al eerder zei, controleert de laatste voorwaardelijke verklaring of je bent ingelogd of niet. Het spreekt voor zich dat de invoervelden voor naam, e-mail en website alleen worden weergegeven als u niet bent aangemeld. Laten we ze daargooien!
U moet /wp-login.php?redirect_to= zijn"> ingelogd om een reactie te plaatsen.
De opmerkingen zijn gesloten.
Alright! We zijn er bijna! We moeten gewoon enkele eenvoudige coderegels toevoegen, zoals een tekstveld en een verzendknop. Deze gaan achter de laatste voorwaardelijke verklaring aan, omdat het niet relevant is voor deze elementen als u bent ingelogd of niet.
U moet /wp-login.php?redirect_to= zijn"> ingelogd om een reactie te plaatsen.
De opmerkingen zijn gesloten.
Deze code zou vrij duidelijk moeten zijn. Een tekstveld voor de opmerking, een verzendknop, een verborgen invoerveld met de toekomstige ID van de opmerkingen en een PHP-fragment (ID KAART); ?>
) WordPress vereist om het commentaarformulier functie te maken.
Voila! Dat is alles Mensen! Je hebt nu je volledig up-to-date comments.php-bestand. Bekijk dit bestand om alle benodigde PHP- en HTML-code te krijgen. Je zou hiermee moeten eindigen (ik heb simpelweg het comments.php bestand van de standaard skin vervangen door die van ons en er wat minder stijl aan toegevoegd.)
Natuurlijk hebt u nu alleen een basaal opmerkingen.php-bestand. Er zijn veel dingen die je zou kunnen doen om het verder te verbeteren. Ik zal een paar kleine tips en trucs noemen om je op weg te helpen.
Vanaf WordPress 2.5 is er een aangepaste WordPress-sjabloontag om gravatars in te sluiten. Het trekt de gravatar uit de e-mail die de bezoeker heeft ingevoerd. De code om dit te doen is heel eenvoudig.
Je kunt vervangen $ author_email
met de handige get_comment_author_email ();
functie, $ size
is de hoogte (en breedte) van de avatar en $ default_avatar
is een link naar de standaardavatarafbeelding (wordt weergegeven wanneer de commentator geen gravatar heeft).
Voer deze code in de foreach
lus die de opmerkingen weergeeft. De uitvoer is een afbeelding met de klassen avatar
en Avatar- $ size
(waar $ size
is de maat die je hebt opgegeven). Met wat kleine CSS-bewerking zou je zoiets als dit kunnen krijgen:
Ik heb met opzet kopjes weggelaten in het comments.php-bestand dat we later hebben gemaakt, omdat ik geloofde dat ze ervoor zouden zorgen dat overtollige code in een leerproces moeilijk genoeg is zoals het is. Uiteraard vergeet ik ze echter niet.
Meestal hebben mensen een kop met iets dat lijkt op '3 reacties tot nu toe'. Dit is heel gemakkelijk te bereiken dankzij de template-tags die WordPress aanbiedt.
Het is nogal vanzelfsprekend: $ zero_comments
is de tekst die moet worden weergegeven als er geen opmerkingen zijn, $ one_comment
wanneer er een opmerking is en $ more_comments
wanneer er meerdere opmerkingen zijn. Een voorbeeld uit de praktijk is als volgt:
ik gebruikte %
voor meerdere opmerkingen, aangezien de comments_number
functie vervangt dan de %
met het aantal reacties (2, 3, ...)
Gebruikt in ons comments.php bestand krijg je zoiets als dit:
Om een link naar het opmerkingengedeelte weer te geven (met het aantal commentaren dat ook wordt weergegeven), gebruikt u eenvoudigweg de volgende code.
De eerste 3 parameters in deze functie zijn hetzelfde als hierboven comments_number
functie. $ css_class
is, natuurlijk, de CSS-klasse die je aan de tag en
$ comments_closed
is de tekst die moet worden weergegeven wanneer de opmerkingen zijn gesloten. Wanneer u dit op een thema toepast, is dit een mogelijke manier om het te gebruiken.
Dit zou je dan een link geven met de klas reacties-koppeling
Soms wilt u een opmerking onmiddellijk bewerken. Gelukkig kun je met de edit_comment_link-functie gemakkelijk naar de juiste pagina gaan om het te bewerken, in plaats van naar je admin-paneel te moeten browsen om die reactie uiteindelijk te bereiken. Gebruik is als zodanig:
Je moet dit in de foreach
commentaar loop. Parameters liggen voor de hand: $ LINK_TEXT
is de ankertekst voor de bewerkingslink, $ before_link
en $ after_link
respectievelijk zijn de tekst of code die moet worden weergegeven vóór of na de koppeling.
Dit maakt het echt gemakkelijk om een opmerking te wijzigen; u kunt eenvoudig een kleine link 'Bewerken' toevoegen aan de meta-informatie van uw opmerking (alleen zichtbaar voor de beheerder). Dit is hoe het eruit zou kunnen zien:
Het is mogelijk dat u afwisselende rijkleuren wilt voor uw opmerkingen, om een duidelijkere scheiding te maken. Dit doen is relatief eenvoudig. Voeg eerst de volgende code toe aan de bovenkant van de pagina:
function alternate_rows ($ i)
if ($ i% 2)
echo '';
else
echo";
Voeg vervolgens het volgende toe binnen de foreach
loop (opnieuw). Je zou gewoon kunnen vervangen hiermee:
Dit geeft elke andere opmerking van de klas alt
, waardoor het mogelijk wordt om hun uiterlijk te veranderen via CSS.
Ik besloot om er een functie voor te maken, om minder rommel te hebben in je eigenlijke themabestand. U zou de functiedefinitie kunnen toevoegen aan uw functions.php-bestand als u dat wilt, maar het is logischer om het bovenaan in uw pagina te plaatsen..
Afwisselende rijen maken het gemakkelijker om verschillende opmerkingen te onderscheiden; eenmaal geïmplementeerd heb je misschien zoiets als dit:
Gebruik dit kleine fragment om de code weer te geven die bezoekers mogen gebruiken in hun opmerkingen.
Toegestane tags:
Dan krijg je gewoon een lijst met de tags die zijn toegestaan in je reacties, zoals deze:
Om een link naar de RSS-feed te krijgen voor de opmerkingen van een bepaald bericht, voegt u eenvoudig de onderstaande code in uw comments.php-bestand in op de plaats waar u het wilt hebben.
Vervang dan gewoon $ link_test
met de ankertekst voor de RSS-link.
Dit kan van pas komen als u uw bezoekers de mogelijkheid wilt geven om zich te abonneren op de reactiefeed voor een specifiek artikel of blogbericht. Je zou het zo kunnen implementeren:
Ik hoop dat je hebt genoten van dit * ahem * kleine artikel over het villen van je WordPress comments.php-bestand. Je kunt hier de volledige code krijgen, met de trucs die ik heb laten zien erin:
Vanzelfsprekend is de opmerkingenlink niet opgenomen omdat deze binnen de lus moet worden gebruikt.
Veel geluk in je WordPress skinningavonturen!