Cum se adaugă timpul estimat de citire la postările și paginile WordPress fără un plugin

 

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress

Timp de citire.

raportarea timpului de citire crește timpul petrecut pe site?

În unele cazuri, adăugarea acestor informații poate crește timpul în care vizitatorii rămân pe site-ul dvs.

Din diferite analize și experiențe, cel puțin așa se spune, se pare că oamenii sunt mai predispuși să viziteze un articol atunci când știu dinainte timpul aproximativ de care vor avea nevoie pentru a-l citi.

cât de repede citim?

Atunci când citim diferite texte, apar unele date sau aproximări care se repetă, cum ar fi faptul că viteza medie de citire a unui adult este de 240 de cuvinte pe minut, cu o rată de înțelegere de 60%, însă viteza de citire scade cu 25% atunci când citim pe ecranul unui calculator în loc de hârtie.

Acesta este motivul pentru care în exemplul prezentat aici viteza este stabilită la 200 de cuvinte pe minut.

Adăugarea timpului de citire estimat fără un plugin

Această informație poate fi adăugată cu un plugin sau cu un pic de cod. Deoarece aici este dogma să evităm instalarea unui nou plugin care este bun doar pentru un singur lucru simplu (de altfel, majoritatea sunt destul de abandonate), explicăm cum se face cu un fragment.

Dacă preferați ceva mai vizual și mai simplu, cum ar fi o bară de progres în partea de sus a paginii care se umple pe măsură ce citiți, aici găsiți cum să o adăugați fără un plugin.

Am ales și testat acest cod pentru că este cel mai simplu, deoarece cele care iau în calcul imaginile măsoară un parametru destul de relativ. Acesta va depinde de tipul de imagini, de dimensiunea lor și de cantitatea de elemente și text pe care le conțin etc. și nu rafinează prea mult numărul total.

Nu multe bloguri adaugă această estimare incluzând imaginile, dar cum în acest blog sunt multe și majoritatea sunt viniete, prin natura lor cu puțin text, am decis să o las la 10 secunde și tot mi se pare mult.

Medium, de exemplu, măsoară 265 de cuvinte pe minut, cu o ajustare făcută pentru imagini de 12 secunde pentru prima, 11 pentru a doua și cu o secundă mai puțin pentru fiecare imagine după aceea. Orice altceva după a zecea imagine este contabilizat în trei secunde. Sursa.

Pentru publicațiile chinezești, japoneze și coreene, Medium stabilește numărul de caractere la 500 pe minut, cu aceeași reglare ca cea de mai sus pentru imagini.

Code, se calculează ținând cont de text și imagini

Acest alt cod ia în considerare timpul de citire a imaginilor, care este setat la 10 secunde, dar poate că este prea lung pentru unele imagini, așa că l-am redus la 6 secunde. Ar putea fi oricând îmbunătățit prin adăugarea calculului secundelor sau a unor variabile mai complexe în funcție de înălțimea imaginilor sau de alți parametri pentru a încerca să mai rafina puțin datele (încurajez pe oricine se pricepe să o facă).

/*Timp de citire */

function wp_reading_time() {

// GET WORDPRESS POST CONTENT
$content = get_post_field( 'post_content', $post->ID );

// COUNT NUMĂRUL DE CUVINTE
$word_count = str_word_count( strip_tags( $content ) );

// COUNT NUMBER OF IMAGES
$image_count = substr_count( $content, '<img' );

// TEXT READING TIME - 200 WORDS PER MINUTE
$reading_time = $word_count / 200;

// TIMP DE LECTURĂ A IMAGINILOR - 10 SECUNDE PE IMAGINE
$image_time = ( $image_count * 10 ) / 60;

// ADĂUGĂ TIMPUL DE LECTURĂ A TEXTULUI ȘI A IMAGINILOR
$total_time = round( $reading_time $image_time );

// DETERMINAȚI DACĂ ESTE SINGULAR SAU PLURAL
if ( $total_time == 1 ) { $minute = " minut"; }
else { $minute = " minute"; }

return $total_time . $minute;

}

*Acest cod, deși funcționează în GeneratePress, în error_log se înregistrează o eroare recurentă pe această linie:

// GET WORDPRESS WORDPRESS POST CONTENT
$content = get_post_field( 'post_content', $post->ID );

Eroarea aceasta:

Încercare de citire a proprietății "ID" pe null în ...  /path și numărul de linie din functions.php
Avertizare PHP: Variabilă nedefinită $post în ...    /path și același număr de linie din functions.php

Încă încerc să-mi dau seama cum să o rezolv.

Există mai multe modalități de a adăuga codul: descărcarea și editarea functions. php local, direct din editorul de șabloane WordPress (Appearance/Theme Editor) sau editarea acestuia, tot "din mers", din managerul de fișiere Cpanel sau similar.

Dacă nu vă simțiți suficient de curajos pentru a adăuga manual acest fragment în fișierul functions.php al șablonului dvs., puteți opta să o faceți folosind pluginul Code Snippets, care servește, de asemenea, pentru a vă păstra colecția de funcții mai bine organizată într-un singur loc.

În acest fel, veți putea reveni asupra modificărilor rapid și ușor dacă ceva se strică sau dacă codul nu mai este compatibil cu o actualizare a PHP, a unui plugin sau a nucleului WordPress

Apoi, trebuie doar să adăugați acest cod care va picta minutele de pe blogul dvs. în locul unde scrie "timp estimat de citire" puteți scrie ceea ce credeți că este mai bine.

<?php echo "Timp de citire: " . wp_reading_time(); ?>

Puteți să-l adăugați unde doriți, dar dacă decideți să-l puneți în meta post, unde șablonul dvs. arată autorul postului, data publicării, numărul de comentarii etc. trebuie să adăugați codul în bucla post meta din fișierul content.php sau single.php (în funcție de fiecare șablon) sau page.php dacă doriți să-l adăugați și la pagini.

După ce verificați că funcționează, adaptați formatarea, adăugați o pictogramă sau orice altceva. Aici arată așa:

Cum se adaugă timpul estimat de citire la postările și paginile WordPress fără un plugin 1

Eu am ales să o adaug cu un shortcode creat cu Ad Inserter pe tema copil în șablonul creat cu Elementor PRO pentru toate postările.

Cómo añadir el tiempo de lectura estimado en los post y páginas de WordPress
Cum se adaugă timpul estimat de citire la postările și paginile WordPress fără un plugin 3

Deși sună dezordonat, este o opțiune foarte curată pentru a nu fi nevoit să te atingi de nicio linie de cod în WordPress și pentru a putea să o modifici rapid și fără complicații în orice moment.

Codul, se calculează doar prin măsurarea textului

Aici aveți o altă funcție alternativă care numără doar textul și afișează minutele și secundele, este cea pe care o folosesc eu acum și nu returnează nicio eroare PHP.

 * Estimează timpul necesar pentru a citi o postare în WordPress */

function wpr_estimate_read_time() {

 $input = get_post();

 $ppm = 250; // putem alege PPM-ul pe care îl dorim (200-300, de exemplu)
 $words = str_word_count( strip_tags( $input->post_content ) ) ) );
 $minutes = floor( $words / $ppm );
 $seconds = floor( ( $words % $ppm ) / ( $ppm / 60 ) ) ) );
  
 if ( 1 <= $minutes ) {
 $estimated_time = $minutes . ' minute' . ( ( ( 1 === $minutes ? '' : 's');
 if ( $seconds > 0 ) {
 $estimated_time .= ', ' . $seconds . ' second' . ( 1 === $secunde ? '' : 's' );
 }
 } else {
 $estimated_time = $secunde . ' second' . ( 1 === $secunde ? '' : 's' );
 }

 return $estimated_time;
}

Pentru a o adăuga oriunde:

<?php echo "Citit în: " . wpr_estimate_time_read(); ?>

Actualizare 21 martie 2023

Extra, contor de cuvinte fără plugin

O modalitate simplă și rapidă de a adăuga numărul de cuvinte din fiecare articol. Îl puteți pune sub titlu sau în meta, sau unde doriți și îl puteți formata cu niște CSS.

1-Crearea unui shortcode cu Code Snippet.

add_shortcode('counter', 'word_count');

2-Asemnați funcția.

function word_count() {
$content = get_post_field( 'post_content', get_the_ID());
$word_count = str_word_count( strip_tags( $content ) ) );
return $word_count;
}
} echo ' ' , word_count();

În cele din urmă, prin aceeași metodă descrisă mai sus, adăugați codul scurt "counter" în șablon cu Elementor, GeneratePress sau orice altceva folosiți.

Și acesta este rezultatul:

Contador de palabras sin plugin para WordPress