WordPress verkar vara överallt i dessa dagar, och det är inte konstigt att det är lätt att använda och lätta att anpassa. I denna handledning kommer jag att dissekera standard WordPress-tematets comments.php-struktur och ge dig olika kodstyper för att göra din skinning enklare.
För din referens har jag också tagit med ett litet innehållsinnehåll.
post_password)):?> post_password):?> comment_approved == '0'):?>
Detta är den råa PHP-koden som gör din comments.php-fil funktion. Till en nybörjare kan det här skrämmas. Men oroa dig inte: med denna handledning kommer allt i din kommentarfil att bli kristallklar!
Den här koden hindrar användare från att visa comments.php av misstag. Den här sidan är avsedd att ingå i en inläggssida, inte separat. Du kan betrakta detta som en säkerhetsåtgärd. Inuti uttalandet kan du infoga ett meddelande du vill visa till personen som tittar på comments.php-filen, helst a dö
påstående.
post_password)):?> post_password):?>
Detta uttalande (ja, 2 faktiskt, men det är mer meningsfullt om du ser dem som en) kontrollerar om ett lösenord krävs för att se inlägget. Det är uppenbart att om du inte har lösenordet för att se inlägget får du inte heller se kommentarerna.
Den första om
kontrollerar om det finns ett lösenord. Den andra om
uttalande kontrollerar om det finns en cookie med ett lösenord på plats och visar meddelandet enligt det när det inte finns där. Du kan anpassa felmeddelandet genom att placera vad du väljer inom den andra om
påstående.
comment_approved == '0'):?>
Detta första villkorliga uttalande (if ($ kommentarer)
) kontrollerar om det finns kommentarer och sedan loopar genom dem med a för varje
påstående. Inuti för varje
uttalande kommer du att märka följande villkorliga uttalande: om ($ comment-> comment_approved == '0')
. Detta kontrollerar om kommentaren har godkänts och visar ett meddelande om det inte är godkänt.
Ett exempel på detta skulle vara följande kodstycke.
- comment_approved == '0'):?>
Din kommentar väntar på att godkännas
Din kommentar
Inga kommentarer
För att göra detta till ett funktionellt kodstycke måste du använda malltaggarna som WordPress tillhandahåller.
Mall tagg | Beskrivning |
---|---|
| ID för en kommentar |
| författaren till en kommentar |
| författaren till en kommentar, inslagen med en länk till hans hemsida om han angav en |
| Typ av kommentar; pingback, trackback eller en kommentar |
| den faktiska kommentaren |
| datumet det var upplagt |
| den tid den var upplagd |
- comment_approved == '0'):?>
Din kommentar väntar på att godkännas
av på påinga kommentarer än
Infoga detta i comments.php skulle ge dig en beställd lista med kommentarerna och den nödvändiga informationen eller visa ett meddelande som anger att det inte finns några kommentarer.
Följer du mig fortfarande? Bra! Vi är nästan där. Vi behöver bara behandla det här formuläret ... Okej, kanske ljög jag om att nästan vara där. Kommentarformuläret är faktiskt en av de hårdare delarna av hela comments.php-hudfilen.
Du kommer bli bombarderad med flera villkorliga uttalanden (krävs ett inloggningsförfarande, är du inloggad, ...). Den här delen är där de flesta startskinnare har störst problem: felaktiga formelement kan förhindra att formuläret fungerar alls, utan att ge ett specifikt PHP-fel.
För att ge dig en inblick i de villkorliga uttalanden som är inblandade i kommentarformuläret ska jag först förklara dessa uttalanden och inkludera HTML senare och förklara varför det borde vara där det är.
Det första villkorliga uttalandet du stöter på är . Detta kontrollerar i grunden om kommentarerna är öppna. Självklart, om kommentarerna är stängda, kan du inte posta en kommentar och kommentarformuläret är inte nödvändigt. Du kan lägga meddelandet du vill visas om kommentarerna är stängda mellan det sista
och
.
Det andra villkorliga uttalandet () kontrollerar om du behöver registreras för att skicka en kommentar och om du är inloggad. Om villkorligt uttalande är uppfyllt, ska skriptet visa en länk till en plats där användarna kan logga in. Om registrering inte krävs eller du är redan inloggad kommer skriptet att fortsätta med
annan
del och visa formuläret.
Vårt sista villkorliga uttalande kontrollerar då om du är inloggad eller inte. Självklart, om du redan är inloggad är det värdelöst att du fyller i ditt namn, e-post och hemsida igen.
Grattis, vi har plöjt igenom alla villkorliga uttalandena i comments.php-filen. Nu är allt som finns kvar att lägga till formuläret där inne.
Det första jag kan höra dig tycker är: Var i helvete är den formen som ska börja? Tja, du måste bara följa sunt förnuft. Det andra villkorliga uttalandet kontrollerar om du måste vara inloggad eller inte, därför måste du inte visa någon form fram till efter det här uttalandet. Således ligger hela formuläret inuti detta villkorliga uttalande.
Du måste vara /wp-login.php?redirect_to="> inloggad för att skicka en kommentar.
Kommentarerna är stängda.
Jag har också kastat in länken till inloggningssidan, precis som jag hittade den i standard kommentarer.php. Som jag sa tidigare kontrollerar det senaste villkorliga uttalandet om du är inloggad eller inte. Självklart visas namnen, e-postadresserna och webbplatsens inmatningsfält endast om du inte är inloggad. Låt oss slänga in dem!
Du måste vara /wp-login.php?redirect_to="> inloggad för att skicka en kommentar.
Kommentarerna är stängda.
OK! Vi är nästan där! Vi behöver bara lägga till några enkla rader med kod, som en textarea och en inlämningsknapp. Dessa går efter det senaste villkorliga uttalandet, eftersom det är irrelevant för dessa element om du är inloggad eller inte.
Du måste vara /wp-login.php?redirect_to="> inloggad för att skicka en kommentar.
Kommentarerna är stängda.
Denna kod ska vara ganska självklarande. Ett textfält för kommentaren, en inlämningsknapp, ett dolt inmatningsfält med kommentarernas framtida ID och ett PHP-fragment (ID); ?>
) WordPress kräver att kommandot formulär funktionen.
Voila! Det är alla folk! Du har nu fått din fullständigt redo comments.php-fil. Visa den här filen för att få all PHP och HTML-koden som krävs. Du borde sluta med det här (jag ersatte helt enkelt standardhårens comments.php-fil med oss och lade till lite mindre styling till det.)
Självklart har du nu bara en grundläggande comments.php-fil. Det finns massor av saker du kan göra för att ytterligare förbättra det. Jag ska lista lite tips och tricks för att hjälpa dig på din väg.
Från WordPress 2.5 finns en anpassad WordPress-malltagg för att integrera gravatars. Det drar gravatar från e-posten besökaren angav. Koden för att göra detta är väldigt enkelt.
Du kan ersätta $ AUTHOR_EMAIL
med nifty get_comment_author_email ();
fungera, $ storlek
är höjden (och bredden) av avataren och $ default_avatar
är en länk till standard avatarbilden (visas när kommentaren inte har någon gravatar).
Sätt in den här koden inuti för varje
slinga som visar kommentarerna. Utgången är en bild med klasserna avatar
och Avatar- $ storlek
(var $ storlek
är den storlek du angav). Med lite mindre CSS redigering kan du sluta med något så här:
Jag slog medvetet ut rubriker i kommentaren.php-filen som vi skapade senare, eftersom jag trodde att de skulle göra för överflödig kod i en inlärningsprocess som är svår nog som den är. Självklart glömmer jag inte dem.
Vanligtvis har folk en rubrik som visar något som liknar "3 kommentarer hittills". Detta är verkligen lätt att uppnå tack vare malltaggen WordPress-erbjudanden.
Det är ganska självförklarande: $ zero_comments
är texten som ska visas när det inte finns några kommentarer, $ one_comment
när det finns en kommentar och $ more_comments
när det finns flera kommentarer. Ett verkligt exempel skulle vara så här:
jag använde %
för flera kommentarer, sedan comments_number
funktionen ersätter sedan %
med antalet kommentarer (2, 3, ...)
Används i vår comments.php-fil, kommer du att sluta med något så här:
För att visa en länk till kommentardelen (med antalet kommentarer som visas också) använder du helt enkelt följande kod.
De första 3 parametrarna i denna funktion är desamma som ovan comments_number
fungera. $ css_class
är självklart den css-klass som du ger till tagga och
$ comments_closed
är texten som ska visas när kommentarerna är stängda. När du tillämpar detta på ett tema är det här ett möjligt sätt att använda det.
Detta skulle då ge dig en länk till klassen synpunkter-link
Ibland vill du omedelbart redigera en kommentar. Lyckligtvis, med funktionen edit_comment_link kan du enkelt gå till höger sida för att redigera den, istället för att behöva bläddra till din adminpanel för att slutligen nå den kommentaren. Användningen är som sådan:
Du måste sätta detta inuti för varje
kommentar loop. Parametrarna är ganska uppenbara: $ LINK_TEXT
är ankare texten för redigeringslänken, $ before_link
och $ after_link
respektive är texten eller koden som ska visas före eller efter länken.
Det gör det verkligen lätt att ändra en kommentar; du kan helt enkelt lägga till en liten "Redigera" länk till din kommentar meta information (endast synlig av admin). Så här kan det se ut:
Det är möjligt att du vill ha alternerande radfärger för dina kommentarer, för att göra en tydligare separation. Att göra detta är relativt enkelt. Lägg först till följande kod till början av sidan:
funktion alternate_rows ($ i)
om ($ i% 2)
eko ";
annat
eko";
Lägg sedan till följande inuti för varje
loop (igen). Du kan helt enkelt ersätta med detta:
Detta kommer att ge varannan kommentar till klassen alt
, vilket gör det möjligt att ändra sitt utseende genom CSS.
Jag bestämde mig för att göra en funktion för det, för att få mindre rodnad i din faktiska temafil. Du kan lägga till funktionsdefinitionen i din functions.php-fil om du vill, men det är mer meningsfullt att jag har den högst upp på din sida.
Alternativa rader gör det lättare att skilja olika kommentarer; När du har genomfört kan du ha något så här:
För att visa koden som besökare får använda i sina kommentarer, använd helt enkelt den här lilla snippet.
Tillåtna taggar:
Då får du helt enkelt en lista över de taggar som är tillåtna i dina kommentarer, så här:
För att få en länk till RSS-flödet för kommentarerna till ett visst inlägg, sätt bara in koden nedan i din comments.php-fil på den plats där du vill att den ska vara.
Sedan ersätt helt enkelt $ link_test
med ankare texten för RSS-länken.
Detta kan vara till nytta om du vill ge dina besökare möjlighet att prenumerera på kommentarflödet för en viss artikel eller bloggpost. Du kan genomföra det så här:
Jag hoppas att du har haft den här * ahem * lilla artikeln om sköljning av din WordPress comments.php-fil. Du kan få hela koden här med de knep som jag visade med i den:
Självklart är kommentarslänken inte inkluderad eftersom detta måste användas inuti slingan.
Lycka till i dina WordPress skinning äventyr!