WordPress Începător la Maestru, Partea 5

De-a lungul acestei serii începând cu șase părți, vom folosi caracteristicile avansate ale WordPress pentru a crea propriul portofoliu și blog, completând o pagină cu opțiuni, mai multe stiluri și suport pentru noile funcții WordPress 2.7. Astăzi, vom aborda comentariile, căutarea și arhiva.

Această parte se referă în principal la stabilirea părților suplimentare pe care nu am ajuns încă. În prima secțiune, creăm șablonul Comentarii - cu suport pentru noile caracteristici din WP 2.7, în timp ce găzduim și pentru versiuni mai vechi.

În a doua secțiune, creăm șabloane de arhivă și de căutare.


Disponibile și în această serie:

  1. WordPress: Începător la Maestru, Partea 1
  2. WordPress: Începător la Maestru, Partea a 2-a
  3. WordPress: Începător la Maestru, Partea 3
  4. WordPress: Începător la Maestru, Partea a 4-a
  5. WordPress: Începător la Maestru, Partea 5
  6. WordPress: Începător la Maestru, Partea 6

Salt la o secțiune

  • Comentarii
  •   - Comentarii pentru WP 2.7+
  •   - Comentariile stilului
  •   - Comentarii pentru WP 2.6-
  • Arhiva
  •   - Formular de căutare
  • Pagina cu rezultatele căutării
  • rezumat

Comentarii

WordPress 2.7 a introdus câteva caracteristici noi pentru secțiunea de comentarii, inclusiv comentariile filetate, comentariile paginate, stilurile alternative și codul simplificat. Cu toate acestea, aceste funcții nu vor funcționa corect în versiunile mai vechi ale WordPress. Pentru a combate acest lucru, vom folosi un filtru WordPress, astfel încât versiunile mai vechi vor folosi un fișier de comentarii, iar alte versiuni mai noi.


Comentarii remarcate în WP 2.7

Adăugați următorul cod în partea de jos a paginii functions.php:

 // Dacă utilizați versiunea 2.6 sau o versiune ulterioară, utilizați comentariile vechi afișați add_filter ('comments_template', 'legacy_comments'); funcția legacy_comments (fișier $) if (! function_exists ('wp_list_comments')) $ file = TEMPLATEPATH. '/Comments.legacy.php'; returnați fișierul $; 

wp_list_comments () este o adăugare nouă în WordPress 2.7; așa că verificăm dacă există function_exists () Funcția PHP. Dacă nu, un filtru WordPress este adăugat pentru a redirecționa către comments.legacy.php atunci când se solicită șablonul de comentarii.
Toate versiunile mai noi WordPress vor continua să fie utilizate comments.php (deoarece acestea conțin wp_list_comments () funcţie.)

Comentarii pentru WP 2.7+

Creați un fișier nou numit comments.php. În interior, începeți cu:

  

Dacă postul curent are comentarii atribuite, numărul de comentarii este afișat într-o etichetă de titlu folosind comments_number () funcţie. Apoi, comentariile sunt afișate într-o listă ordonată folosind noul wp_list_comments () funcţie.
Fiecare comentariu va fi afișat cu ajutorul unui șablon încorporat ușor de folosit în diferite moduri, însă dacă aveți nevoie de mai mult control asupra felului în care arată fiecare comentariu, consultați această pagină din Codul WordPress.

Etichetele de navigare cu comentarii sunt, de asemenea, noi pentru 2.7 și permit "paginarea" între un număr de comentarii (la fel ca și dvs. între postările de blog).

În următorul cod, se afișează un mesaj dacă comentariile sunt închise pentru postare:

 comment_status): // Dacă comentariile sunt deschise, dar nu există comentarii. altceva: ecou "

Comentariile sunt închise la acest post.

"; endif; endif;?>

Următoarea sarcină este afișarea formularului de comentariu real:


 comment_status):?> 

Trebuie să fiți /wp-login.php?redirect_to="> conectat (ă) pentru a posta un comentariu.

Dacă comentariile sunt setate să se deschidă, este afișat un titlu "Lăsați un răspuns" utilizând noul comment_form_title () funcţie. Dacă utilizatorul răspunde la un comentariu, % s în "Lăsați un răspuns la% s" se înlocuiește cu numele autorului comentariului la care răspund.
De asemenea, este afișat un link de răspuns la anulare dacă acesta este un răspuns folosind cancel_comment_reply_link ().
În cele din urmă, dacă numai utilizatorii conectați pot comenta (și utilizatorul nu este conectat), se afișează un mesaj de eroare indicând pagina de conectare.

Dacă nu este necesară înregistrarea (sau dacă utilizatorul este conectat):

 

Conectat ca /wp-admin/profile.php "> . "title =" Deconectați-vă de la acest cont "> Deconectați-vă»

Formularul de comentarii este deschis. Dacă utilizatorul este conectat, un "Logat ca ... Deconectați-vă?" mesajul este afișat - în caz contrar sunt afișate câmpurile "Nume", "Email" și "Website".

În final, se afișează butoanele "Textarea Mesaj" și "Trimitere", formularul închis și dacă declarații închise:

 

ID); ?>

comment_id_fields () afișează ID-ul postului curent într-un câmp ascuns. În WP 2.6 - a trebuit să faceți acest lucru manual, dar acum este necesar să utilizați această funcție.

În tabloul de bord, accesați Setări -> Discuție și bifați opțiunile "Activați comentariile filetate" și "Opriți comentariile în paginile". Apoi, previzualizați șablonul de comentariu accesând orice post blog:



Comentariile stilului

Adauga la style.css:

 / * Comentarii * / h4 # comentarii clar: ambele; margine: 45px 0 5px 0; . commentlist li font-size: inherit; . commentlist li .avatar float: right;  .commentlist cite font-weight: bold; font-style: normal; font-size: 0.95; . commentlist p font-size: 0.8; font-weight: normal; Înălțimea liniei: 1,5cm; margine: 10px 5px 10px 0; text-transform: nici unul;  .commentmetadata display: bloc; font-size: 0.8cm; font-weight: normal; linia-înălțime: 1.1em; marja: 0;  .commentlist .reply font-size: 0.8cm; font-weight: bold; . commentlist marja: 0 0 20px 0; . commentlist li margine: 15px 0 10px; padding: 10px; listă: nu există; . commentlist li ul li marginea-dreapta: -5px; margin-stânga: 10px;  .comms-navigation, .navigation clar: ambele; afișare: bloc; margin-bottom: 20px; overflow: ascuns;  copii (umplutură: 0;  .comunicări text-align: center; marja: 0; umplutura: 0;  / * Comentariu Formular * / #responsabil h4 clar: ambele; margine: 45px 0 10px 0;  forma p padding-bottom: 10px; margine: 5px 0;  forma p etichetă display: inline-block; margin-dreapta: 10px; text-aliniere: drept; lățime: 5cm;  forma p etichetă [pentru = "comentariu"] vertical-align: top;  intrare, textarea padding: 3px;  textarea font-family: Arial, Helvetica, sans-serif; font-size: 0.9cm; overflow: auto;  intrare # trimite padding: 5px 3px; 

Și următoarele în deepblue.css:

 / * Lista de comentarii * / .commentlist li .avatar border: 2px solid # f2e9ea;  .commentlist citează: link, .commentlist cite a: vizitat culoare: # 333;  .commentlist .commentmetadata a: link: primul-copil, .commentlist .commentmetadata a: vizitat: primul-copil culoare: # 333;  .thread-alt culoare-fundal: # F6F6EC;  .întâmpină-chiar background-color: # F9F9F3;  .depth-1 frontieră: 1px solid # E8E3C8;  .even, .alt frontieră-stânga: 1px solid # E8E3C8;  intrare, textarea background-color: # F6F6EC; frontieră: 1px solid # E8E3C8;  intrare: focus, textarea: focalizare border: 1px solid # dad4b6; 

Rețineți că 2.7 adaugă automat nume de clase speciale cum ar fi Alt, chiar, copii, bypostauthor, fir-Alt, fir-chiar etc, acolo unde este necesar, pentru a permite stilului de a comenta orice altceva o culoare diferită pentru a crește lizibilitatea în firele lungi. Consultați Codul WordPress pentru mai multe informații despre acest lucru.

Interior header.php, direct înainte introduce:

 

În acest caz, se încarcă un fișier Javascript încorporat, care poate să "miște" formularul de comentarii când faceți clic pe un link Răspundeți - astfel încât pagina nu trebuie reîncărcată:


Faceți clic pe "Răspundeți" și formularul se mută în poziția curentă:


Comentarii pentru WP 2.6

Nu voi explica niciunul din acest cod, din cauza faptului că este depășit și este inclus doar pentru puțini oameni care nu utilizează WP 2.7. Dar am adăugat într-un $ counter astfel încât comentariile alternative pot fi redactate diferit, așa cum sunt ele în 2.7.

Creați un fișier nou numit comments.legacy.php și copiați în următorul cod. Dacă utilizați WP 2.6, aspectul va fi exact la fel ca în cazul în care 2,7 dacă comentariile cu filet sunt dezactivate.

 post_password)) // dacă există o parolă dacă ($ _COOKIE ['wp-postpass_' .COOKIEHASH]! = $ post-> post_password) // și nu se potrivește cu modul cookie? 

Această postare este protejată prin parolă. Introduceți parola pentru a vizualiza comentariile.

  1. spune:
    #cometariu-„>
    comment_approved == '0'): echo 'Comentariul dvs. așteaptă să fie moderat.„; endif; ?>
comment_status):?>

Comentariile sunt închise.

comment_status):?>

lasa un raspuns

Trebuie să fiți /wp-login.php?redirect_to="> conectat (ă) pentru a posta un comentariu.

Conectat ca /wp-admin/profile.php ">. /wp-login.php?action=logout "title =" Deconectați-vă de la acest cont "> Deconectare»

ID); ?>

Descărcați fișierele sursă pentru această postare dacă doriți ca acest fișier să fie distribuit și formatat corect pentru a ușura editarea.


Comentariile sunt afișate în WP 2.6 sau mai jos

Notă: Dacă doriți să aflați mai multe despre bucla de comentarii vechi, verificați "Descoperirea Secretele WordPress" Comentarii.php Fișier "de Gilles Maes.


Arhiva

archive.php șablon este folosit pentru a afișa orice fel de arhivă pentru blog - de ex. categorii, luni, etichete etc..


Creați un fișier nou numit archive.php și începeți cu următoarele:

 „; ?>

După cum puteți vedea, dacă arhiva este pentru categoria Portofoliu, pagina va încărca Pagina-portfolio.php șablon. Ieșire; se asigură că nu se mai execută nici un cod după acea linie dacă se utilizează șablonul de portofoliu.
Următor →:

  

Arhiva pentru "Categoria

Posts Tagged '

Arhiva pentru

Arhiva pentru

Arhiva pentru

Arhiva autorului

Arhivele blogului

Fiecare secțiune va afișa un titlu ușor diferit în funcție de arhiva. De exemplu, dacă este o arhivă pentru categoria "General", titlul ar spune "Arhivă pentru categoria" General "; sau o arhivă lunară pentru ianuarie 2009 ar fi "Arhiva pentru ianuarie 2008".
Pe ultima linie, bucla este deschisă.

Următor →:

 

"title =" Continuați citirea """>

  • #comments ">

Codul de mai sus este codul normal pentru o postare de blog (așa cum am folosit de mai multe ori pe pagina de blog, pagini individuale etc.). Pe ultima linie, bucla este închisă.
Dacă arhiva nu există:

 # Arhiva nu există: alt: get_header (); ?> 

Nu a fost gasit

Este afișat un antet simplu "Nu este găsit" și searchform.php fișierul este inclus (pe care îl vom crea în continuare). Ar trebui probabil să includeți mai multe informații pe această pagină pentru ao face mai ușor de utilizat.

În cele din urmă, includeți legăturile de paginare, bara laterală și subsolul:

 

Acum, încercați pagina dvs. de arhivă făcând clic pe unul dintre link-urile dintr-o miniaplicație Categorie / Arhive / Taguri. Dar dacă mergeți la o arhivă care nu există (de ex. Un ID de categorie care nu există), veți fi întâmpinat cu următoarea pagină de eroare deoarece searchform.php fișierul nu există.


Formular de căutare

Acest fișier nu a putut fi mai simplu - doar un formular de căutare. Adăugați următoarele într-un fișier nou numit searchform.php:

 

Încearcă din nou o arhivă inexistentă, iar formularul de căutare va apărea. Utilizează acelasi stil ca și cel folosit în formularul de căutare al barei laterale, astfel încât nu este nevoie de un stil suplimentar.



Pagina cu rezultatele căutării

Fișierul șablon final este necesar search.php care afișează rezultatele dintr-o căutare. În cea mai mare parte, aceasta este o buclă obișnuită, cu toate acestea, deoarece articolele din portofoliu pot apărea în rezultate, ele trebuie să fie afișate diferit față de postările din blog.


Creați search.php fișier și începeți cu următoarele:

  

rezultatele cautarii

Bucla este deschisă, iar apoi este o dacă declarație pentru afișarea unui element de portofoliu:

 ID, "previzualizare", adevărat); $ date = get_post_meta ($ post-> ID, 'data', true); $ client = get_post_meta ($ post-> ID, 'client', true); $ link = get_post_meta ($ post-> ID, 'link', adevărat); ?> 
„><?php the_title(); ?>

„> ($ Data)";>>

Dacă postul preluat este din categoria de portofoliu, postul va fi afișat utilizând aspectul de mai sus - pentru a apărea la fel ca și articolele din portofoliu. In caz contrar…

  

"title =" Continuați citirea """>

  • #comments ">

Se folosește aspectul obișnuit de postări pe blog.
În cele din urmă, în cazul în care nu s-au returnat rezultate, se afișează un mesaj de eroare cu un formular de căutare, se utilizează etichetele de paginare și sunt incluse și fișierele din partea laterală și footer:

  

Nu s-au găsit postări. Încercați o căutare diferită?

Doar adăugați următoarea CSS în style.css și am terminat aici:

 .căutare de muncă clar: ambele; marcă: 0 0 45px 0; umplutura: 0 0 40px 0; lățime: 690px; 

rezumat

Mâine este ultima zi a seriei. (Partea 6) Vom schimba niște bug-uri cu diavolul (IE6) și vom termina seria creând RedSpace schema de culori pentru inovație!!

Cod