Duración de la lectura posterior Código corto de WordPress

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 un código corto de WordPress.

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 / pluginsy llámalo “código corto de duración posterior a la lectura“, Ábrelo y crea un archivo llamado”post-lectura-duración-shortcode.php“. Abra el archivo y pegue este código:


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 ''.$content.'';
}

add_shortcode("reading_duration", "rc_prds_add_reading_duration_shortcode");

Puede guardar el archivo. Si agrega a una publicación o una 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 debemos 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 ''.$content.' '.$estimated_reading_time.'';
}

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]

Botón volver arriba