
🔖 Como ativar etiquetas nas páginas do WordPress
As páginas do WordPress não suportam tags de origem, e isso é irritante até percebermos por que razão é feito assim. Uma página no WordPress é tecnicamente um tipo de conteúdo personalizado ao qual a taxonomia post_tag simplesmente não está associada. Os programadores do núcleo mantiveram as tags apenas para artigos, tratando as páginas como conteúdo estático.
Mas, na prática, esta limitação pode ser contornada em cinco minutos. Dois métodos: uma linha de código no functions.php ou um micro-plugin que pode ativar e desativar sem editar o tema. Abaixo estão ambas as opções, com uma explicação do que acontece exatamente nos bastidores.
💡 Resumo rápido:
Registar a taxonomia
post_tagpara o tipo de conteúdopageusando uma única funçãoregister_taxonomy_for_object_typeAdicionar suporte de tags aos arquivos através do gancho
pre_get_posts, para que as páginas apareçam nos resultados das consultas de tagsO código funciona para qualquer tipo de conteúdo personalizado; basta repetir a chamada com o nome do tipo desejado
Tudo se encapsula num plugin separado em um minuto: ficheiro → cabeçalho do plugin → código → ativação
Porquê tags nas páginas
As tags não são apenas uma nuvem na barra lateral. São um eixo de navegação que liga páginas dispersas em grupos temáticos, mais rapidamente do que categorias ou menus.
As páginas do WordPress proliferam frequentemente: contactos, políticas, termos, páginas de destino de serviços, portefólios, documentação. Sem tags, a ligação entre elas depende apenas de links manuais no texto. Com tags, uma única página «Envio» acaba automaticamente no grupo «logística», ao lado da página «Devoluções», e os visitantes clicam na tag para ver tudo o que está relacionado.
Para SEO, as tags nas páginas proporcionam links internos adicionais e reduzem as taxas de rejeição: os utilizadores não saem após a primeira página, mas mergulham numa coleção temática. Além disso, as tags entram no sitemap, ajudando os motores de busca a compreender melhor a estrutura.
Método 1: código no functions.php
A via mais direta é adicionar um fragmento ao ficheiro functions.php do seu tema ativo. Abra wp-content/themes/SEU_TEMA/functions.php e cole o código antes do ?> de fecho ou no final do ficheiro:
1 /** 2 * Add tag support to WordPress pages. 3 * Code — in functions.php of child theme or via Code Snippets plugin. 4 */ 5 function sdstudio_add_tags_to_pages() { 6 register_taxonomy_for_object_type( 'post_tag', 'page' ); 7 } 8 add_action( 'init', 'sdstudio_add_tags_to_pages' ); 9 10 /** 11 * Include pages in tag archive queries. 12 * Without this, pages won't appear on /tag/tag-name/ 13 */ 14 function sdstudio_pages_in_tag_archives( $wp_query ) { 15 if ( $wp_query->get( 'tag' ) ) { 16 $wp_query->set( 'post_type', 'any' ); 17 } 18 } 19 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_archives' );
Eis o que está a acontecer. A função register_taxonomy_for_object_type() associa a taxonomia post_tag existente ao tipo de conteúdo page. Esta é uma função do núcleo do WordPress; documentação em developer.wordpress.org. Não cria uma nova taxonomia, apenas adiciona a relação «páginas → tags».
O gancho pre_get_posts modifica a consulta SQL antes de esta ser executada. Quando o WordPress constrói uma página de arquivo de tags (/tag/nome/), por defeito procura apenas artigos do tipo post. A linha $wp_query->set( 'post_type', 'any' ) expande a seleção para todos os tipos: páginas, artigos, tipos personalizados.
Depois de inserir o código, vá a qualquer página e aparecerá um bloco «Tags» na barra lateral, tal como nos artigos normais. Funciona de imediato; não é necessário limpar a cache.
Adaptação para tipos de conteúdo personalizados
Se tiver tipos de conteúdo personalizados (CPT), como portefólios, testemunhos ou produtos, que também precisem de tags, adicione o mesmo número de chamadas register_taxonomy_for_object_type() dentro da sua função init:
1 register_taxonomy_for_object_type( 'post_tag', 'portfolio' ); 2 register_taxonomy_for_object_type( 'post_tag', 'testimonials' );
O nome do CPT é o segundo argumento, o mesmo especificado ao registar o tipo através de register_post_type(). Não são necessárias edições adicionais ao pre_get_posts: 'any' já inclui todos os tipos registados.
Método 2: um plugin separado
Editar o functions.php diretamente é uma solução funcional, mas frágil. Mude de tema e o código desaparece, levando consigo as tags das páginas. Para quem gere vários sites ou muda frequentemente de tema, é mais fiável mover o fragmento para um plugin separado.
Crie o ficheiro wp-content/plugins/sdstudio-tags-for-pages.php com este conteúdo:
1 <?php 2 /** 3 * Plugin Name: Tags for Pages 4 * Description: Enables post tags on WordPress pages and custom post types 5 * Version: 1.0 6 * Author: SDStudio 7 * License: GPL-2.0+ 8 */ 9 10 // Direct access — forbidden 11 if ( ! defined( 'ABSPATH' ) ) { 12 exit; 13 } 14 15 // Tags → pages 16 function sdstudio_tags_for_pages() { 17 register_taxonomy_for_object_type( 'post_tag', 'page' ); 18 } 19 add_action( 'init', 'sdstudio_tags_for_pages' ); 20 21 // Pages → tag archive 22 function sdstudio_pages_in_tag_queries( $wp_query ) { 23 if ( ! is_admin() && $wp_query->is_main_query() && $wp_query->get( 'tag' ) ) { 24 $wp_query->set( 'post_type', 'any' ); 25 } 26 } 27 add_action( 'pre_get_posts', 'sdstudio_pages_in_tag_queries' );
A diferença em relação ao primeiro método é a verificação ! is_admin() && $wp_query->is_main_query(). Isto garante que as consultas do painel de administração não são afetadas: o pre_get_posts é acionado em todo o lado, incluindo a lista de páginas no painel, e sem esta verificação pode obter comportamentos inesperados no painel ao filtrar.
O ficheiro está pronto; vá a Plugins, encontre «Tags for Pages» e ative-o. Já está. Quando mudar de tema, o plugin permanece ativo e as tags não desaparecem. Em multisite, o plugin pode ser ativado por site ou em toda a rede.
Método 3: plugins prontos do diretório
Se não quiser escrever código, as soluções prontas do WordPress.org tratam da tarefa. Adicionam não só tags, mas também categorias para páginas, além de uma interface de gestão.
Add Categories to Pages é um plugin leve que ativa categorias e tags para páginas com uma única caixa de verificação. Sem configurações, sem anúncios. Adequado quando só precisa que as coisas funcionem, sem ecrãs extra.
Aqui está uma demonstração em vídeo de como adicionar tags a páginas através de código e de plugin, 4 minutos, todos os passos mostrados em tempo real:
Ponto-chave: os plugins de terceiros trazem código e ganchos adicionais. Se o seu site já está carregado com uma dúzia de plugins, mais um é mais um ponto de falha. O código dos métodos 1 e 2 pesa meros bytes e não adiciona consultas à base de dados além das normais.
⁉️🤔 Perguntas frequentes
Isto funciona em multisite? Sim, o código é universal. Pode ativar o plugin por site ou ativá-lo em toda a rede através de «Ativar na rede».
No WordPress multisite, o código funciona de forma idêntica em todos os sites da rede. A função
register_taxonomy_for_object_type()está ligada à taxonomiapost_tag, que existe separadamente em cada site da rede, pelo que as tags não se sobrepõem entre sites. Para cada site filho, as tags nas páginas são ativadas de forma independente: ative o plugin num site e as tags aparecem apenas aí.
Preciso de atualizar os links permanentes depois de inserir o código? Não, a estrutura de URL não muda. As tags nas páginas não adicionam novas regras de reescrita.
O WordPress armazena a relação «página, tag» na tabela
wp_term_relationships, a mesma usada para artigos. Nenhuma regra de reescrita é afetada: o arquivo de tags já existe (/tag/nome/), e o pre_get_posts simplesmente inclui as páginas na sua consulta. Não é necessário mexer nos links permanentes; tudo funciona de imediato após ativar o código.
As tags desaparecem ao mudar de tema? Depende do método. O código no functions.php do tema fará com que desapareçam. O código num plugin ou no Code Snippets preservá-las-á.
Ao mudar de tema, o WordPress carrega um novo
functions.php, pelo que o fragmento do tema antigo deixa de ser executado e a metabox de tags nas páginas desaparece. No entanto, as relações «página, tag» na base de dados não são eliminadas. Basta restaurar o código (no novo tema ou via plugin) e todas as tags anteriormente atribuídas reaparecem no painel.
Posso atribuir tags programaticamente ao importar páginas? Sim, através de wp_set_object_terms( $page_id, array( 'tag1', 'tag2' ), 'post_tag' ).
A função
wp_set_object_terms()aceita um ID de página, um array de nomes de tags e o nome da taxonomia. Se uma tag com esse nome não existir, o WordPress criá-la-á automaticamente. Isto é conveniente durante a migração: um script percorre todas as páginas e atribui tags a partir de um ficheiro CSV ou de um CMS antigo. É importante executar o script depois doinit, caso contrário a taxonomia ainda não está registada.
E quanto à nuvem de tags: as páginas aparecerão nela? Sim, o widget padrão «Nuvem de tags» captará as tags das páginas sem configuração adicional.
O widget
wp_tag_cloud()recolhe todos os objetos da taxonomiapost_tagpor defeito, independentemente do tipo de conteúdo. Assim que uma página tiver pelo menos uma tag, esta entra na nuvem em pé de igualdade com as tags dos artigos. A frequência também é calculada corretamente: uma tag em três páginas e dois artigos produz um peso de «5» e é exibida em tamanho maior.
O que escolher: código ou plugin
A escolha específica depende do seu cenário, não de uma «resposta certa».
Os proprietários de um único site que não mudam de tema durante anos acharão suficiente um fragmento no functions.php: copiar, colar, feito. Os freelancers com uma dúzia de sites de clientes acham um plugin mais conveniente: enviam o ficheiro zip para o cliente ou ativam-no num novo projeto em segundos. Quem já usa o Code Snippets ou o WPCodeBox pode simplesmente adicionar o fragmento à sua coleção; não se perderá nas atualizações do tema e não requer um plugin separado.
Se precisar de mais do que tags (categorias, taxonomias personalizadas, filtragem avançada), veja os plugins prontos do WordPress.org. Mas para a tarefa de «ativar tags nas páginas», sete linhas de código são suficientes. Tudo o resto é exagero.
A seguir, configure a sua estrutura de tags: pense em 5 a 7 tópicos-chave para as páginas e atribua-os. Dentro de um mês, a nuvem de tags mostrará quais os tópicos do site mais fortemente ligados.



