Pesquisar programaticamente postagens do WordPress por intervalo de datas
TL;DR: O código compartilhado nesta postagem mostra como você pode modificar a consulta executada na página Todas as postagens para que você possa limitar a forma de pesquisa de postagens a um intervalo de datas especificado.
Já faz algum tempo desde a última vez que escrevi sobre o uso do post_where
filtro para modificar a consulta de pesquisa que é executada em uma determinada página, como a área All Posts do WordPress. Mas, dado o fato de que há uma variedade de usos para recuperar postagens – e tipos de postagem personalizados – de diferentes maneiras, há várias maneiras de usar esse único filtro.
Pesquisar postagens por período
Para pesquisar postagens por período, veja o que precisa acontecer:
- Registre um retorno de chamada com o
posts_where
filtro, - Verifique se a função aceita a string
where
e a instânciaWP_Query
que está sendo executada na página - Obtenha a data e hora de hoje e a data e hora de quatro semanas atrás
- Anexe a
where
cláusula para restringir os resultados à data return
a consulta atualizada.
O resultado dessa função é uma consulta modificada que restringe as postagens que são retornadas na data e hora especificadas. Ou seja, quatro semanas atrás até a hora, minuto e segundo.
Você pode alterar isso atualizando a -4 weeks
string passada para a strtotime
função (mas eu recomendo revisar a página de manual do PHP vinculada abaixo para entender como essa função funciona com uma linguagem como esta).
Referências
[posts_where](https://developer.wordpress.org/reference/hooks/posts_where/)
[WP_Query](https://developer.wordpress.org/reference/classes/wp_query/)
[wpdb](https://developer.wordpress.org/reference/classes/wpdb/)
[gmdate](https://www.php.net/manual/en/function.gmdate.php)
[strtotime](https://www.php.net/manual/en/function.strtotime.php)