Utilizando o filtro post_where do WordPress
Estava trabalhando em um projeto que usa o WordPress como gerenciador de conteúdo e enquanto buscava uma luz para resolver um problema descobri o filtro post_where. O filtro post_where do WordPress serve para alterar a cláusula WHERE da consulta que é enviada ao banco de dados, somando-a aos if’s e is_ da vida é possível fazer uma porrada de coisa, vamos ver um exemplo.
Revista digital priorizando assinantes
Você vai desenvolver uma revista digital, não pretende cobrar para liberar acesso ao conteúdo, porém deseja incentivar os visitantes a se cadastrarem fornecendo o conteúdo antecipadamente, ou seja, usuários não cadastrados só terão acesso ao conteúdo 5 dias depois de publicado, enquanto os usuários cadastrados terão acesso imediato.
1 2 3 4 5 6 7 8 9 10 | function post_delay( $where ) { if(is_admin() || current_user_can('read')){ return $where; } $dias = 5; $dias = (get_option('gmt_offset') * 3600) - ($dias * 24 * 60 * 60); $where .= " AND post_date < '" . gmdate( 'Y-m-d H:i:s', ( time() + $dias ) ) . "'"; return $where; } add_filter( 'posts_where', 'post_delay' ); |
Com a função acima apenas administradores e usuários com privilégio mínimo de leitura poderão ver os posts logo após publicado, os outros só após 5 dias.
Se você gostou deste post, escreva um comentário e/ou cadastre-se em nosso feed.

Muito bacana Léo… Obrigado por compartilhar!