Até onde sei você não tem como alterar o widget padrão, sem mexer no core, porque ele gera a lista de posts criando uma nova instancia da WP_Query();
e não temos como interferir nos argumentos dessa nova instancia sem mexer diretamente nela. Em outras palavras, este widget não prevê a possibilidade de alterar algo além das opções que ele fornece (quantidade de posts, titulo…).
Minha sugestão é que utilize unregister_widget('WP_Widget_Recent_Posts');
para desregistrar o widget padrão e crie um novo widget para o recente posts passando as características que deseja. Pode até copiar o código do widget nativo e fazer as alterações.
só preciso definir que ela mostre de 1 categoria em especifico..
A resposta continua sendo a mesma, ficou sem entender alguma parte? Se sim me diz qual que eu tento ajudar.
Passei por um problema semelhante recentemente (precisava alterar o HTML gerado por esse widget) e, fazendo quase exatamente o que o @leobaiano disse, consegui resolver de forma satisfatória: a única diferença é que na verdade não copiei o Widget original, acabei só estendendo a classe mesmo. A boa notícia é que o @ddzadravec deu sorte: este widget aplica um filtro (widget_posts_args) no array passado como argumento para WP_Query. No link tem um exemplo mudando o parâmetro orderby, então para fixar uma categoria só seria preciso adicionar esse código no functions.php do tema:
add_filter('widget_posts_args', 'filter_recent_posts_widget_parameters');
function filter_recent_posts_widget_parameters($params) {
$params['category_name'] = 'staff'; // Troque 'staff' pelo slug da sua categoria
return $params;
}
Não testei o código, mas o caminho é esse aí 🙂
Opa, verdade @felipeelia Elia, não vi que o filtro era aplicado, boa!
-
Esta resposta foi modificada 8 anos, 8 meses atrás por
Leo Baiano.