fbpx

Bem vindo ao
Blog da FULL.

Aprenda, crie e cresça seu negócio na internet.

Encontre conteúdos, dicas, tutoriais e novidades sobre as principais ferramentas Wordpress

Código curto do WordPress de duração da leitura da postagem

Você está em:

Código curto do WordPress de duração da leitura da postagem

Eu vi há alguns dias um site fornecendo um pouco de informação extra no topo da página: o tempo estimado para ler a página . Achei engraçado e queria criar algo semelhante usando um shortcode do WordPress .

Isso é muito fácil de fazer, então vamos começar!

Etapa 1: criar um plug-in

Como de costume, vamos criar um plugin, então, crie uma nova pasta em wp-content/plugins e chame-a de ” post-reading-duration-shortcode “, abra-a e crie um arquivo chamado ” post-reading-duration -shortcode.php “. Abra o arquivo e cole 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

*/

Depois de salvar o arquivo, você deverá ver a lista de plug-ins na página de plug-ins.

Etapa 2: criar o código de acesso

Basicamente, o plugin fornecerá um código de acesso simples sem atributo. O texto será encapsulado entre as próprias tags de código de acesso. O código de acesso exibirá no frontend o tempo que os visitantes precisam para ler o post. Para criar o shortcode, 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”);

Você pode salvar o arquivo. Se você adicionar a um post ou página o shortcode [reading_duration]Estimated reading time: XX[/reading_duration] , ele deverá mostrar “Estimated reading time: XX” encapsulado em uma tag “span”.

O próximo passo é modificar o shortcode para exibir o tempo real estimado necessário para ler a página ou o post, de acordo com um número predefinido de palavras lidas por minuto.

Para fazer isso, temos que fazer o código de atalho evoluir. Precisamos obter o ID do post (para recuperar o número de palavras no post usando str_word_count() ), e precisamos definir um número de palavras que as pessoas costumam ler em um minuto. Digamos 200 palavras 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”);

Etapa 3: a função do contador

Como você pode ver, há uma função indefinida: rc_prds_get_post_reading_time(). Esta é a função que retornará o tempo estimado que você precisa para ler o post. Vamos criar:

/**

 * 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;

}

Basicamente, a função conta o número de palavras em “get_the_content()”, então conta o número de minutos e segundos necessários para ler o post. A última parte é apenas uma maneira simples de exibir a mensagem correta dependendo dos valores de $minutos e $segundos.

Poderíamos ir mais longe e adicionar horas necessárias para ler o post, mas não tenho 100% de certeza de que seja obrigatório!

Agora você pode usar totalmente o shortcode simplesmente adicionando:

[reading_duration]Estimated Reading Time:[/reading_duration]

Aprenda com a FULL.

Junte-se a mais de 50 mil pessoas que recebem em primeira mão as principais ferramentas e tecnologia para desenvolvimento web

Meu carrinho
🎁 Faltam R$100,00 para liberar a Black da FULL
Seu carrinho está vazio.

Parece que você não adicionou nada ao seu carrinho =(