un blog de Radu Dumitru

►► canalele mele de YouTube: youtube.com/RaduDumitru (personal) și youtube.com/NwraduBlog (tech) ◄◄

Cum să numerotezi comentariile în WordPress pe mai multe pagini

26 Sep 2014  ·

TEHNOLOGIE  ·

11 comentarii

La un moment dat mă săturasem să număr manual comentariile la concursurile de pe blog și am modificat codul WordPress pentru a afișa în dreptul fiecărui comentariu numărul său de ordine din acel articol. Puteți vedea un număr înaintea numelui fiecăruia dintre voi în comentarii.

Problema este că nu se păstra numărătoarea pe fiecare pagină de comentarii (sunt câte 50 pe pagină). Erau URL-ul separate, așa că numărătoarea se relua de la 1 pe fiecare pagină de comentarii de la același articol, și mulți mi-ați semnalat asta ca pe un bug.

Am reușit să folosesc parametrul start=”” din tag-ul OL (comentariile sunt de fapt o listă ordonată) și să-l leg de numărul paginii de comentarii. Modificarea trebuie făcută însă manual, în funcție de cum e tema voastră scrisă, fie direct în cod, în callback-ul cu care tema modifică funcția wp_list_comments() sau chiar în această funcție, în fișierele de bază ale WordPress-ului.

Codul original a fost:

Codul final este:

Numărul paginii de comentarii se extrage automat din variabila globală WordPress $cpage. Problema este că $cpage nu are valoare și pentru ultima pagină de comentarii, adică dacă ai 3 pagini de comentarii pentru prima WordPress generează variabila $cpage=1, pentru a doua $cpage=2, iar pentru a treia nimic, că este cea curentă.

Poți însă să afli numărul total de pagini de comentarii cu funcția get_comment_pages_count(), care returnează direct 3. Așadar pentru primele pagini urma să folosesc $cpage în formula mea, pentru ultima această funcție. Codul preia acel $cpage (dacă nu există, folosește get_comment_pages_count) și-l folosește într-o formulă găsită de mine pentru a numerota cum trebuie comentariile.

După 2 ore de citit codex-ul WordPress-ului și căutat pe net sugestii, am reușit sa combin cele două elemente pentru această soluție, lucru semnificativ având în vedere că PHP-ul este un mister pentru mine și programare am făcut doar un semestru de Pascal și unul de C++. Sper că eșți fericită, Matilda!

succes_shutterstock_165529670

Sunt sigur că o fi și vreo soluție mult mai simplă, dar eu la asta m-am gândit.

sursa foto: Success de pe Shutterstock.

    11 comentarii

  1. Las comentariul doar pentru a vedea numarul de langa el.

      (Citează)

  2. second!

      (Citează)

  3. unde-s numerele? :)

      (Citează)

  4. Tre sa umplem pina la 51 sa testam chestiunea … :D
    Da si tu un premiu pentru commentul 51 :))

      (Citează)

  5. I support this post :D

      (Citează)

  6. 51

    Gata, merge!

      (Citează)

  7. deci nu mai exista fara numar!

      (Citează)

  8. Bine, fie, voi carcoti eu daca toti ceilalti dac… De ce e numarul diferit ca stil fata de nume? /r/mildlyinfuriating

      (Citează)

  9. Pe mobil nu apare nimic…

      (Citează)

  10. @Flo: ca să nu distragă atenția de la nume.

      (Citează)

    Alătură-te discuției, lasă un mesaj

    E-mail-ul nu va fi publicat. Fără înjurături și cuvinte grele, că vorbim prietenește aici. Gândiți-vă de două ori înainte de a publica. Nu o luați pe arătură doar pentru că aveți un monitor în față și nu o persoană reală.

    Apăsați pe Citează pentru a cita întreg comentariul cuiva sau selectați întâi anumite cuvinte și apăsați apoi pe Citează pentru a le prelua doar pe acelea. Link-urile către alte site-uri, dar care au legătură cu subiectul discuției, sunt ok.


    Prin trimiterea comentariului acceptați politica de confidențialitate a site-ului.



    Vreți un avatar în comentarii? Mergeți pe gravatar.com (un serviciu Wordpress) și asociați o imagine cu adresa de email cu care comentați.

    Dacă ați bifat să fiți anunțați prin email de noi comentarii sau posturi, veți primi inițial un email de confirmare. Dacă nu validați acolo alegerea, nu se va activa sistemul și după un timp nu veți mai primi nici alte emailuri

    Comentariile nu se pot edita ulterior, așa că verificați ce ați scris. Dacă vreți să mai adăugați ceva, lăsați un nou comentariu.

sus