Hace unos días vi un sitio web que proporcionaba un poco de información adicional en la parte superior de la página: el tiempo estimado para leer la página. Lo encontré divertido y quería crear algo similar usando WordPress Código corto.
Esto es bastante fácil de hacer, ¡así que comencemos!
Paso 1: crea un complemento
Como de costumbre, vamos a crear un complemento, así que cree una nueva carpeta en wp-content / plugins, y llámalo «post-lectura-duración-shortcode«, Ábrelo y crea un archivo llamado»post-lectura-duración-shortcode.php“. Abra el archivo y pegue este código:
<?php
/*
Plugin Name: Post Reading Duration Shortcode
Plugin URL: http://remicorson.com/
Description: Display the estimated time to read the post
Version: 0.1
Author: Remi Corson
Author URI: http://remicorson.com
Contributors: corsonr
Text Domain: rc_prds
Domain Path: languages
*/
Una vez que guarde el archivo, debería ver la lista de complementos en la página de complementos.
Paso 2: crea el código corto
Básicamente, el complemento proporcionará un código abreviado simple sin atributo. El texto se encapsulará entre las propias etiquetas de shortcode. El shortcode mostrará en la interfaz el tiempo que los visitantes necesitan para leer la publicación. Para crear el código corto, use este código:
/**
* Register the shortcode
*
* @access public
* @since 1.0
* @return void
*/
function rc_prds_add_reading_duration_shortcode( $atts, $content = null ) {
return '<span class="reading_duration">'.$content.'</span>';
}
add_shortcode("reading_duration", "rc_prds_add_reading_duration_shortcode");
Puede guardar el archivo. Si agrega a una publicación o página el código corto [reading_duration]Tiempo de lectura estimado: XX[/reading_duration], debe mostrar «Tiempo de lectura estimado: XX» encapsulado en una etiqueta «intervalo».
El siguiente paso es modificar el shortcode para mostrar el tiempo real estimado necesario para leer la página o la publicación, de acuerdo con un número predefinido de palabras leídas por minuto.
Para hacerlo, tenemos que hacer evolucionar el código abreviado. Necesitamos obtener el ID de la publicación (para recuperar la cantidad de palabras en la publicación usando str_word_count ()), y necesitamos definir una cantidad de palabras que la gente suele leer en un minuto. Digamos 200 palabras por minuto.
/**
* Register the shortcode
*
* @access public
* @since 1.0
* @return void
*/
function rc_prds_add_reading_duration_shortcode( $atts, $content = null ) {
global $post;
// Get Post ID
$post_id = $post->ID;
// Words read per minute (you can set your own value)
$words_per_minute = 200;
// Get estimated time
$estimated_reading_time = rc_prds_get_post_reading_time( $post_id, $words_per_minute );
return '<span class="reading_duration">'.$content.' '.$estimated_reading_time.'</span>';
}
add_shortcode("reading_duration", "rc_prds_add_reading_duration_shortcode");
Paso 3: la función de contador
Como puede ver, hay una función no definida: rc_prds_get_post_reading_time (). Esta es la función que devolverá el tiempo estimado que necesita para leer la publicación. Vamos a crearlo:
/**
* Get post reding time
*
* @access public
* @since 1.0
* @return void
*/
function rc_prds_get_post_reading_time( $post_id, $words_per_minute ){
// Get post's words
$content = get_the_content( $post_id );
$count_words = str_word_count( strip_tags( $content ) );
// Get Estimated time
$minutes = floor( $count_words / $words_per_minute);
$seconds = floor( ($count_words / ($words_per_minute / 60) ) - ( $minutes * 60 ) );
// If less than a minute
if( $minutes < 1 ) {
$estimated_time = __( 'Less than a minute', 'rc_prds' );
}
// If more than a minute
if( $minutes >= 1 ) {
if( $seconds > 0 ) {
$estimated_time = $minutes.__( 'min', 'rc_prds' ).' '.$seconds.__( 'sec', 'rc_prds' );
} else {
$estimated_time = $minutes.__( 'min', 'rc_prds' );
}
}
return $estimated_time;
}
Básicamente, la función cuenta la cantidad de palabras en “get_the_content ()”, luego cuenta la cantidad de minutos y segundos necesarios para leer la publicación. La última parte es solo una forma sencilla de mostrar el mensaje correcto según los valores de $ minutos y $ segundos.
Podríamos ir más allá y agregar las horas necesarias para leer la publicación, ¡pero no estoy seguro al 100% de que sea obligatorio!
Ahora puede usar completamente el código corto simplemente agregando:
[reading_duration]Estimated Reading Time:[/reading_duration]