Já vi muitos temas utilizando bibliotecas JavaScript para criar datas mais legíveis no conteúdo, porém, o WordPress já tem uma função para fazer isso.
O que eu quis dizer com datas mais legíveis?
Você já deve ter visitado algum site em que, ao invés de exibir a data no formato padrão dia/mês/ano, a data era exibida de um jeito mais humano, algo como 3 dias atrás.
Muito mais fácil de entender quando o conteúdo foi publicado não?
Abaixo vou mostrar como fazer isso em seu loop:
<?php
$from = get_the_time( 'U' );
$to = current_time( 'timestamp' );
printf( _x( '%s ago', '%s = human-readable time difference', 'your-text-domain' ), human_time_diff( $from, $to ) );
Basicamente fizemos o seguinte:
Recuperamos a data do post (ou qualquer outro CPT) e salvamos na variavel $from.
$from = get_the_time( 'U' );
Depois pegamos a data atual do servidor e salvamos na variável $to.
$to = current_time( 'timestamp' );
Okay, isso ficou um pouquinho mais complexo por que estamos usando 3 funções de uma só vez (printf, _x e human_time_diff).
printf( _x( '%s ago', '%s = human-readable time difference', 'your-text-domain' ), human_time_diff( $from, $to ) );
Vou explicar do fim para o início da linha para fazer mais sentido:
- human_time_diff: função que fará a mágica calculando a diferença entre a data de publicação e a data atual
- _x: função de internacionalização que exibe um contexto para ajudar a vida dos tradutores
- ‘%s ago’: string a ser traduzida
- ‘%s = human-readable time difference’: comentário que será exibido ao tradutor em programas como PoEdit ou sites como Transifex e GlotPress
- ‘your-text-domain’: deve ser o mesmo textdomain do seu tema
- printf: função mágica que substituirá o %s pelo resultado da função human_time_diff
Eu poderia ter usado __() ao invés de _x()?
Sim, porém, é muito melhor deixar a vida dos tradutores mais fácil.
Já vi muitas pessoas traduzindo strings com %s sem deixar espaço após o S por não saber que isso fará com que a informação dentro do %s deixe de ser processada.
Resumidamente: Traduzir ‘%s ago’ como ‘%satrás’ quebrará sua tradução.
Bom, não vou aprofundar em tradução agora por que pretendo escrever sobre tradução de temas e plugins posteriormente.
Caso você queira saber mais sobre as funções utilizadas nesse exemplo, aqui estão os links para a documentação do WordPress:
O printf() é nativo do PHP, não do WordPress 🙂
[…] eu havia comentado nesse post, eu estava com esse conteúdo na cabeça há algum tempo e finalmente encontrei tempo para […]