Как да добавите очакваното време за четене на публикации и страници в WordPress без плъгин

 
Как да добавите очакваното време за четене на публикации и страници в WordPress

Време за четене.

Увеличава ли се времето за четене?

В някои случаи добавянето на тази информация може да увеличи времето, което посетителите прекарват на сайта ви.

От различни анализи и опит, поне така се твърди, става ясно, че хората са по-склонни да посетят дадена статия, когато предварително знаят приблизителното време, което ще им отнеме да я прочетат.

Колко бързо четем?

При четенето на различни текстове се повтарят някои данни или приближения, като например, че средната скорост на четене на възрастен човек е 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, ако искате да го добавите и към страниците.

След като проверите дали работи, просто адаптирайте формата, добавете икона или нещо друго. Тук той изглежда така:

Как да добавите очакваното време за четене на публикации и страници в WordPress без плъгин 1

Избрах да го добавя с шорткод, създаден с Ad Inserter на детската тема в шаблона, създаден с Elementor PRO за всички публикации.

Как да добавите очакваното време за четене на публикации и страници в WordPress

Въпреки че звучи небрежно, това е много чист вариант да не се налага да докосвате нито един ред код в 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 или каквото използвате.

И ето какъв е резултатът:

Брояч на думи без плъгин за WordPress