[MU] Mostrar IDs no Admin

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 '

Gerenciar sites

'; } } /** * 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

  1. Certifique-se de que o autoloader loader.php esteja presente em /mu-plugins/.
  2. Crie a pasta neodoor-show-ids dentro de /mu-plugins/.
  3. Dentro dela, crie o arquivo neodoor-show-ids.php e cole o código acima.
  4. Desative e remova os plugins blog-id-in-site-admin-menu e simply-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_column usando get_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)

Média: 2.9 (42 votos)