Aula: Mostrar IDs no Admin com MU-Plugin – Substituindo “blog-id-in-site-admin-menu” e “simply-show-ids”
Objetivo: Criar um MU-Plugin leve que exibe o ID do blog (em multisite) no menu administrativo e também adiciona uma coluna “ID” nas listas de posts, páginas, usuários, comentários, categorias e tags, substituindo os plugins blog-id-in-site-admin-menu e simply-show-ids.
Contexto: Esses dois plugins são úteis para desenvolvedores que precisam identificar rapidamente IDs de elementos no admin. Nosso MU-Plugin unifica as funcionalidades em um único código enxuto, sem sobrecarga, e funciona tanto em sites simples quanto em redes multisite.
Funcionalidades implementadas
- ID do blog (multisite): Exibe o ID do site atual na barra superior do admin (toolbar) e também como um widget no dashboard.
- Coluna ID em posts e páginas: Adiciona coluna “ID” na lista de todos os tipos de post (posts, páginas, CPTs como aulas).
- Coluna ID em usuários: Adiciona coluna “ID” na lista de usuários.
- Coluna ID em comentários: Adiciona coluna “ID” na lista de comentários.
- Coluna ID em categorias e tags: Adiciona coluna “ID” nas telas de listagem de taxonomias.
- Opção de ativar/desativar via constante (opcional, para controle fino).
Código do MU-Plugin
Crie a pasta wp-content/mu-plugins/neodoor-show-ids/ e dentro dela o arquivo neodoor-show-ids.php com o conteúdo abaixo:
<?php
add_node( array(
'id' => 'blog-id',
'title' => 'ID do Blog: ' . $blog_id,
'href' => '#',
'meta' => array( 'class' => 'blog-id-display' )
) );
}
/**
* Adiciona um widget no dashboard mostrando o ID do blog (multisite)
*/
public function add_blog_id_dashboard_widget() {
if ( ! is_multisite() ) {
return;
}
wp_add_dashboard_widget(
'dashboard_blog_id',
'ID do Blog',
array( $this, 'render_blog_id_widget' )
);
}
public function render_blog_id_widget() {
echo 'ID atual do blog: ' . get_current_blog_id() . '
';
if ( current_user_can( 'manage_network' ) ) {
echo '';
}
}
/**
* Adiciona a coluna "ID" no array de colunas
*/
public function add_id_column( $columns ) {
$columns['neodoor_id'] = 'ID';
return $columns;
}
/**
* Renderiza o ID na coluna para posts/páginas/CPTs
*/
public function render_id_column( $column_name, $post_id ) {
if ( 'neodoor_id' === $column_name ) {
echo esc_html( $post_id );
}
}
/**
* Renderiza o ID na coluna de usuários
*/
public function render_user_id_column( $output, $column_name, $user_id ) {
if ( 'neodoor_id' === $column_name ) {
return $user_id;
}
return $output;
}
/**
* Renderiza o ID na coluna de comentários
*/
public function render_comment_id_column( $column_name, $comment_id ) {
if ( 'neodoor_id' === $column_name ) {
echo esc_html( $comment_id );
}
}
/**
* Adiciona coluna ID para taxonomias (categorias, tags, etc.)
*/
public function add_taxonomy_id_columns() {
$taxonomies = get_taxonomies( array( 'show_ui' => true ), 'names' );
foreach ( $taxonomies as $taxonomy ) {
add_filter( "manage_edit-{$taxonomy}_columns", array( $this, 'add_id_column' ) );
add_filter( "manage_{$taxonomy}_custom_column", array( $this, 'render_taxonomy_id_column' ), 10, 3 );
}
}
/**
* Renderiza o ID para termos de taxonomia
*/
public function render_taxonomy_id_column( $content, $column_name, $term_id ) {
if ( 'neodoor_id' === $column_name ) {
return $term_id;
}
return $content;
}
}
Neodoor_Show_IDs::get_instance();
Instruções de instalação
- Certifique-se de que o autoloader
loader.phpesteja presente em/mu-plugins/. - Crie a pasta
neodoor-show-idsdentro de/mu-plugins/. - Dentro dela, crie o arquivo
neodoor-show-ids.phpe cole o código acima. - Desative e remova os plugins
blog-id-in-site-admin-menuesimply-show-ids(se estiverem ativos).
Como testar
- ID do blog (multisite): Se você estiver em uma instalação multisite, verá na barra superior do admin um item “ID do Blog: X” e também um widget no dashboard.
- IDs em posts/páginas: Acesse Posts → Todos os posts ou Páginas → Todas as páginas. Uma nova coluna “ID” aparecerá com o número de cada item.
- IDs em usuários: Acesse Usuários → Todos os usuários – coluna “ID” visível.
- IDs em comentários: Acesse Comentários – coluna “ID” visível.
- IDs em categorias/tags: Acesse Posts → Categorias ou Tags – coluna “ID” visível.
Funcionamento em multisite
O MU-Plugin detecta automaticamente se o WordPress está em modo multisite. Se estiver, exibe o ID do blog na toolbar e no dashboard. Em instalações single-site, essas funcionalidades são ignoradas, mas as colunas de IDs continuam funcionando normalmente.
Personalizações possíveis
- Remover widget do dashboard: Basta remover ou comentar a linha
add_action( 'wp_dashboard_setup', [ $this, 'add_blog_id_dashboard_widget' ] );. - Alterar título da coluna: No método
add_id_column, troque'ID'por qualquer outro texto (ex:'Identificador'). - Desativar para tipos de post específicos: Adicione uma verificação no
add_id_columnusandoget_current_screen().
Plugins substituídos
blog-id-in-site-admin-menu– totalmente substituído (toolbar + dashboard widget).simply-show-ids– totalmente substituído (colunas de ID em posts, páginas, usuários, comentários, taxonomias).
Observações finais
- O código não interfere no frontend do site, apenas no admin.
- Não há necessidade de configuração – funciona imediatamente após criado.
- Compatível com PHP 8.4 e versões recentes do WordPress (6.x).
- Se você não usa multisite, as partes específicas de blog ID são ignoradas – o plugin permanece leve.
Registro no caderno
Data:
Funcionalidade: Exibição de IDs no admin (posts, usuários, comentários, taxonomias e blog ID)
Plugins substituídos: blog-id-in-site-admin-menu, simply-show-ids
Tempo de implementação: ~10 minutos (criação e testes)