Cum sa afisezi timpul estimativ de citire al unui articol pe blogul tau

Share

Weekend-ul trecut mi-am propus ca o sa termin un plugin WordPress in maxim o ora. Core-ul pluginului a fost gata intr-o ora, dar pluginul propriu zis l-am terminat in aproximativ 6 ore. Si asa a luat nastere Simple Word Count and Reading time .

Pluginul are ca scop afisarea timpului estimativ de citire al unui articol, nimic prea fancy dupa cum observati. Pluginul este de tipul install and forget it, adica el va face toata treaba.

Procesul de functionare este relativ simplu, dupa instalare el va calcula automat timpul de citire al fiecarui articol de pe blog si va salva datele in post meta. Pentru articolele noi calculul se va face la postarea sau actualizarea articolului. Apoi datele sunt extrase din post meta si afisate sub titlu.

Deoarece mi se parea mult prea simplu pluginul, am creeat o bara de incarcare, pozitionata in partea de sus a paginii, care ii arata cititorului cata citit din articol.

Pluginul poate fi descarcat momentan gratuit de pe Github. L-am trimis catre aprobare la wordpress.org, dar momentan sunt peste 150 de pluginuri la coada deci trebuie sa mai asteptam pana va fi disponibil pe wordpress.org.

Orice feedback este bine venit!

Descarca .zip   

Share

9 Comments on “Cum sa afisezi timpul estimativ de citire al unui articol pe blogul tau

  1. Fain, insa merg schimbate cateva lucruri p-acolo. 2 dintre ele:
    – metoda de “calculare” a reading time-ului pt old posts e OK doar daca ai putine articole. Vezi ce se intampla cand ai 4-5000 articole si trebuie sa le faci dintr-un foc. Macar pune sa faca asta doar in admin (vezi hook-ul admin_init)
    – update_post_meta face add atunci cand meta-ul nu exista, deci add_post_meta n-ar mai avea sens sa fie folosit
    Probabil o sa modific si dau un pull request cand o sa prind niste timp.

    PS: iti spun sincer ca bara aceea n-are niciun sens. 😀

    • Sunt de acord că bara nu prea are ce căuta. E ok pluginul. Aștept următoarea versiune și o să-l implementez și eu pe un site al meu.

      Succes în continuare!

    • Multumesc de feedback.

      M-am gandit la prima problema si nu am gasit o solutie rapida dar o sa optimizez putin query-ul. Si posibil sa il blochez daca utilizatorul are mai mult de 5k articole.

      Inainte sa ma gandesc la bara, am vazut ideea pe cateva bloguri .com si am vazut ceva reactii pozitive din partea utilizatorilor. Chiar am primit un feedback live unde mi s-a spus sa pun progresul afisat in procent direct.

  2. Ai putea sa folosesti si transients pt. toata treaba asta. Gen pt. mai mult de X articole, calculezi reading time-ul folosind un cron job, in batch-uri de Y articole. Salvezi rezultatul intr-un transient si modifici/stergi acel transient doar cand post-ul are update.

    • Este o varianta, da nu una fiabila. Asta ar ingreuna loading time-ul la tot website-ul. Transients se salveaza in tabela de options, eu am nevoie de transient permanent, un transient permanent este cu autoload on by default, deci nu are rost sa incarc datele de la toate postarile, la fiecare sesiune. Iar cron-job-urile din WordPress sunt controlate de front-end, ceea ce poate ingreuna timpul de incarcare, lucru pe care nu il doresc.

      Ceea mai buna optiune mi se pare sa fac un manual update button, mai exact o functie din admin unde sa se poata face update la postari in batch-uri, dar manual si numai pentru un numar mare de postari.

  3. Pe siteurile cu un volum mare de continut in term-taxonomy da eroare in functie de bufferul de memorie alocat pentru PHP:

    PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 32 bytes) in /var/xxxxxxx/public_html/xxxxxxx/wp-includes/taxonomy.php on line 1858, referer: https://www.podulminciunilor.ro/wp-admin/plugins.php?plugin=simple-word-count-and-reading-time%2Findex.php

    Mie mi-a dat deja cu un buffer de 128MB ceea ce e mult prea mult pentru PHP si e vorba de o structura cloud nu de shared hosting.
    Nu stiu ce-l face chiar asa resource intensive dar presupun ca functia asta e singura care poate consuma toate resursele disponibile pentru PHP: OldPosts()
    Probabil ca faca o rescrii sa actualizeze sub forme de batch de 1000 de posturi odata sau mai putin n-o sa mai apara problema asta.

    • Este deja pe lista acest feature. Cand o sa am timp o sa fac update-ul. Cel mai probabil in 2-3 saptamani.

Leave a Reply

Your email address will not be published. Required fields are marked *