Ontrafelen van de geheimen van WordPress 'Comments.php-bestand

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.

  1. De PHP-backend
  2. Algemene code
    1. Voorkomen van directe toegang tot comments.php
    2. Is een wachtwoord vereist?
  3. De reacties weergeven
    1. Standaard commentaar sjabloon tags
    2. Het eindresultaat
  4. Het reactieformulier
    1. Overzicht voorwaardelijke overzichten
    2. Het formulier invoegen
  5. Een paar kleine trucjes
    1. Gravatars
    2. Commentaarnummers
    3. Commentaar links
    4. Opmerkingen bewerken
    5. Afwisselende kleuren voor opmerkingen
    6. De toegestane tags weergeven
    7. Reacties RSS-link
  6. Conclusie

1. De PHP-backend

  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!


2. Algemene code

Voorkomen van directe toegang tot comments.php

 

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.

  

Is een wachtwoord vereist?

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.


3. De opmerkingen weergeven

  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.

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

    uw reactie is in afwachting van goedkeuring

    Jouw commentaar

Geen commentaar

Standaard commentaar sjabloon tags

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

Het eindresultaat

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

    uw reactie is in afwachting van goedkeuring

    door op op

Nog 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.


4. Het commentaarformulier

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.

Overzicht voorwaardelijke overzichten

        

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.

Het formulier invoegen

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.

Ingelogd als /wp-admin/profile.php ">. /wp-login.php?action=logout "title =" Log uit van dit account "> Afmelden»

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.

Ingelogd als /wp-admin/profile.php ">. /wp-login.php?action=logout "title =" Log uit van dit account "> Afmelden»

ID KAART); ?>

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.)


5. Een paar kleine trucjes

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.

Gravatars

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:

Commentaarnummers

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:

Commentaar links

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

Opmerkingen bewerken

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:

Afwisselende kleuren voor opmerkingen

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:

    De toegestane tags weergeven

    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:

    Reacties RSS-link

    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:

    6. Conclusie

    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:

    • Gravatars,
    • alternatieve rijkleuren,
    • link bewerken,
    • opmerkingen rss link.

    Vanzelfsprekend is de opmerkingenlink niet opgenomen omdat deze binnen de lus moet worden gebruikt.

    Veel geluk in je WordPress skinningavonturen!