Nas traduções do WordPress nós mantemos o termo original, em inglês, post. Nem publicações, nem artigos, nem entradas seriam termos tão genéricos. Postagem, apesar de reconhecido pela ABL, não comunica melhor que posts. Mesmo assim, algumas vezes precisamos de um termo mais específico. Para autores e administradores de um portal de notícias um termo menos abrangente ajuda mais, então post é notícia mesmo.

Como eu já expliquei aqui antes, para alterar alguma coisa dos arquivos do WordPress devemos usar os hooks (actions ou filters). Desde a versão 3.5 do WordPress existe o filtro “post_type_labels_{$post_type}”, capaz de alterar os labels, isto é, as palavras envolvidas no processo de descrição do tipo de conteúdo. Para alterar o nome posts é só atrelar uma função ao filtro post_type_labels_post:

function post_para_noticia( $labels ) {
    $labels->name = __( 'Notícias', 'post-para-noticia' );
    $labels->singular_name = __( 'Notícia', 'post-para-noticia' );
    $labels->add_new = __( 'Adicionar nova', 'post-para-noticia' );
    $labels->add_new_item = __( 'Adicionar nova notícia', 'post-para-noticia' );
    $labels->edit_item = __( 'Editar notícia', 'post-para-noticia' );
    $labels->new_item = __( 'Nova notícia', 'post-para-noticia' );
    $labels->view_item = __( 'Ver notícia', 'post-para-noticia' );
    $labels->view_items = __( 'Ver notícias', 'post-para-noticia' );
    $labels->search_items = __( 'Pesquisar notícia', 'post-para-noticia' );
    $labels->not_found = __( 'Nenhuma notícia encontrada.', 'post-para-noticia' );
    $labels->not_found_in_trash = __( 'Nenhuma notícia encontrada na lixeira.', 'post-para-noticia' );
    $labels->all_items = __( 'Todas as notícias', 'post-para-noticia' );
    $labels->archives = __( 'Arquivos de notícias', 'post-para-noticia' );
    $labels->attributes = __( 'Atributos da notícia', 'post-para-noticia' );
    $labels->insert_into_item = __( 'Inserir na notícia', 'post-para-noticia' );
    $labels->uploaded_to_this_item = __( 'Anexadas a esta notícia', 'post-para-noticia' );
    $labels->filter_items_list = __( 'Filtrar lista de notícias', 'post-para-noticia' );
    $labels->items_list_navigation = __( 'Navegação da lista de notícias', 'post-para-noticia' );
    $labels->items_list = __( 'Lista de notícias', 'post-para-noticia' );
    $labels->menu_name = __( 'Notícias', 'post-para-noticia' );
    $labels->name_admin_bar = __( 'Notícia', 'post-para-noticia' );
    return $labels;
}
add_filter( 'post_type_labels_post', 'post_para_noticia' );

Se você colocar o código acima no functions.php do seu tema ele irá funcionar. Mesmo assim, como eu já falei no texto sobre território de plugins e território de temas, isso não deve estar associado ao tema em uso e sim em um plugin separado. É só copiar, colar em um arquivo com extensão .php e colocar um cabeçalho. Se você quiser cortar caminho pode baixar esse zip com o arquivo. Só instalar pelo painel mesmo, em Plugins →Adicionar novo →Enviar plugin.

Para trocar os labels das páginas, troque post_type_labels_post por post_type_labels_page.

Infelizmente, vários textos e plugins na internet sugerem usar as actions admin_menu e init. Estes são métodos antigos, muito mais intrusivos e não precisam mais ser usados, afinal temos um filtro exatamente para isso.


Se o post foi útil ou se você conhece alguma forma melhor ainda de realizar esse processo deixe um comentário aqui embaixo!