Време за четене.
Увеличава ли се времето за четене?
В някои случаи добавянето на тази информация може да увеличи времето, което посетителите прекарват на сайта ви.
От различни анализи и опит, поне така се твърди, става ясно, че хората са по-склонни да посетят дадена статия, когато предварително знаят приблизителното време, което ще им отнеме да я прочетат.
Колко бързо четем?
При четенето на различни текстове се повтарят някои данни или приближения, като например, че средната скорост на четене на възрастен човек е 240 думи в минута при степен на разбиране 60%, но скоростта на четене намалява с около 25%, когато се чете на компютърен екран вместо на хартия.
Ето защо в представения тук пример скоростта е определена на 200 думи в минута.
Добавяне на приблизително време за четене без плъгин
Тази информация може да бъде добавена с приставка или с малко код. Тъй като тук е догма да се избягва инсталирането на нов плъгин, който служи само за едно просто нещо (освен това повечето от тях са доста пренебрегнати), обясняваме как да го направите с фрагмент.
Ако предпочитате нещо по-просто и визуално, например лента за напредъка на четенето в горната част, която се попълва, докато четете, тук можете да научите как да я добавите без приставка.
Избрах и тествах този код, защото е най-простият, тъй като тези, които отчитат изображенията, измерват параметър, който е доста относителен. Това ще зависи от вида на изображенията, техния размер и количеството на елементите и текста, които съдържат, и т.н. и не прецизира твърде много общия брой.
Не много блогове добавят тази оценка, включително изображенията, но тъй като в този блог те са в изобилие и повечето от тях са винетки, по своята същност с малко текст, реших да го оставя на 10 секунди и това все още ми се струва много.
Средната стойност например е 265 думи в минута, като за изображенията се прави корекция от 12 секунди за първото изображение, 11 секунди за второто и 1 секунда по-малко за всяко следващо изображение. Всяко изображение след десетото се отчита за три секунди. Източник.
За публикации на китайски, японски и корейски език Medium задава брой символи 500 в минута със същата настройка, както по-горе за изображенията.
Код: изчислява, като взема предвид текст и изображения
Този друг код отчита времето за четене на изображенията, което е зададено на 10 секунди, но може би е твърде много за някои изображения, затова го намалих на 6 секунди. Винаги може да се подобри, като се добави изчисляване на секундите или по-сложни променливи в зависимост от височината на изображенията или други параметри, за да се опитаме да прецизираме данните малко повече (насърчавам всеки, който знае, да го направи).
/*Tiempo de lectura */
function wp_reading_time() {
// OBTENER EL CONTENIDO DE LA ENTRADA DE WORDPRESS
$content = get_post_field( 'post_content', $post->ID );
// CONTAR EL NÚMERO DE PALABRAS
$word_count = str_word_count( strip_tags( $content ) );
// CONTAR EL NÚMERO DE IMÁGENES
$image_count = substr_count( $content, '<img' );
// TIEMPO DE LECTURA DE TEXTOS - 200 PALABRAS POR MINUTO
$reading_time = $word_count / 200;
// TIEMPO DE LECTURA DE IMÁGENES - 10 SEGUNDOS POR IMAGEN
$image_time = ( $image_count * 10 ) / 60;
// AÑADIR EL TIEMPO DE LECTURA DE TEXTOS E IMÁGENES
$total_time = round( $reading_time + $image_time );
// DETERMINAR SI ES SINGULAR O PLURAL
if ( $total_time == 1 ) { $minute = " minuto"; }
else { $minute = " minutos"; }
return $total_time . $minute;
}
*Този код, въпреки че работи в GeneratePress, в error_log на този ред се записва повтаряща се грешка:
// OBTENER EL CONTENIDO DE LA ENTRADA DE WORDPRESS
$content = get_post_field( 'post_content', $post->ID );
Тази грешка:
Attempt to read property "ID" on null in ... /ruta y nº de línea de functions.php
PHP Warning: Undefined variable $post in ... /ruta y mismo nº de línea de functions.php
Все още се опитвам да разбера как да го поправя.
Има няколко начина за добавяне на кода: изтегляне и редактиране на functions.php локално, директно от редактора на шаблона на WordPress (Appearance/Theme Editor) или редактирането му, също "в движение", от файловия мениджър в Cpanel или подобен.
Ако не се чувствате достатъчно смели, за да добавите този фрагмент към файла functions.php на шаблона си на ръка, можете да го направите с помощта на плъгина Code Snippets, който също така служи за по-добро организиране на колекцията ви от функции на едно място.
По този начин можете бързо и лесно да върнете промените, ако нещо се счупи или кодът вече не е съвместим с актуализация на PHP, плъгин или ядрото на WordPress.
След това просто добавете този код, който ще изрисува минутите в блога ви, където пише "очаквано време за четене", можете да напишете каквото пожелаете.
<?php echo "Tiempo de lectura: " . wp_reading_time(); ?>
Можете да го добавите, където пожелаете, въпреки че ако решите да го поставите в пост мета, където шаблонът ви показва автора на публикацията, датата на публикуване, броя на коментарите и т.н., трябва да добавите кода в пост мета цикъла на файла content.php или single.php (в зависимост от всеки шаблон) или page.php, ако искате да го добавите и към страниците.
След като проверите дали работи, просто адаптирайте формата, добавете икона или нещо друго. Тук той изглежда така:
Избрах да го добавя с шорткод, създаден с Ad Inserter на детската тема в шаблона, създаден с Elementor PRO за всички публикации.
Въпреки че звучи небрежно, това е много чист вариант да не се налага да докосвате нито един ред код в WordPress и да можете да го променяте бързо и без усложнения по всяко време.
Код: изчислява само чрез измерване на текст
Ето една алтернативна функция, която брои само текст и показва минути и секунди, тя е тази, която използвам сега и не връща никакви грешки на PHP.
* Estima el tiempo necesario para leer una entrada en WordPress */
function wpr_estima_tiempo_lectura() {
$entrada = get_post();
$ppm = 250; // podemos escoger el PPM que queramos (200-300, por ejemplo)
$palabras = str_word_count( strip_tags( $entrada->post_content ) );
$minutos = floor( $palabras / $ppm );
$segundos = floor( ( $palabras % $ppm ) / ( $ppm / 60 ) );
if ( 1 <= $minutos ) {
$tiempo_estimado = $minutos . ' minuto' . ( 1 === $minutos ? '' : 's');
if ( $segundos > 0 ) {
$tiempo_estimado .= ', ' . $segundos . ' segundo' . ( 1 === $segundos ? '' : 's' );
}
} else {
$tiempo_estimado = $segundos . ' segundo' . ( 1 === $segundos ? '' : 's' );
}
return $tiempo_estimado;
}
Може да се добави навсякъде:
<?php echo "Se lee en: " . wpr_estima_tiempo_lectura(); ?>
Актуализация 21 март 2023 г.
Допълнително, брояч на думи без плъгин
Лесен и бърз начин за добавяне на броя на думите във всяка публикация. Можете да го поставите под заглавието или в мета, или където пожелаете, и да го форматирате с малко CSS.
1-създаване на кратък код с Code Snippet.
add_shortcode('contador', 'word_count');
2 - Функцията е присвоена.
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();
Накрая, по същия начин, описан по-горе, добавете шорткода "counter" в шаблона с Elementor, GeneratePress или каквото използвате.
И ето какъв е резултатът: