[MU] Admin Slug Column

Aula: Adicionando a coluna “Slug” na lista de posts (substituindo o plugin Admin Slug Column)

Objetivo: Substituir o plugin admin-slug-column por um código enxuto em MU-Plugin, ganhando performance e controle.

Contexto: O plugin original adiciona uma coluna na administração de posts/páginas mostrando o slug (nome amigável) de cada item. Vamos recriar essa funcionalidade com poucas linhas de PHP.

Código do MU-Plugin

Crie o arquivo wp-content/mu-plugins/neodoor-admin-slug-column/neodoor-admin-slug-column.php com o conteúdo abaixo:

<?php
/**
 * Plugin Name:  Neodoor Admin Slug Column
 * Description:  Adiciona coluna "Slug" nas listas de posts, páginas e CPTs.
 * Version:      1.0
 * Author:       Reinaldo (Neodoor.neo)
 */

if ( ! defined( 'ABSPATH' ) ) {
    exit;
}

class Neodoor_Admin_Slug_Column {

    private static $instance = null;

    public static function get_instance() {
        if ( null === self::$instance ) {
            self::$instance = new self();
        }
        return self::$instance;
    }

    private function __construct() {
        add_filter( 'manage_posts_columns', [ $this, 'add_slug_column' ], 10, 1 );
        add_filter( 'manage_pages_columns', [ $this, 'add_slug_column' ], 10, 1 );
        add_action( 'manage_posts_custom_column', [ $this, 'render_slug_column' ], 10, 2 );
        add_action( 'manage_pages_custom_column', [ $this, 'render_slug_column' ], 10, 2 );
        // Para CPTs genéricos
        add_filter( 'manage_edit-post_columns', [ $this, 'add_slug_column' ] );
    }

    public function add_slug_column( $columns ) {
        $columns['slug'] = 'Slug';
        return $columns;
    }

    public function render_slug_column( $column_name, $post_id ) {
        if ( 'slug' === $column_name ) {
            $slug = get_post_field( 'post_name', $post_id );
            echo esc_html( $slug );
        }
    }
}

Neodoor_Admin_Slug_Column::get_instance();

Instruções de instalação

  1. Certifique-se de que o autoloader loader.php esteja presente em /mu-plugins/ (conforme aula anterior).
  2. Crie a pasta neodoor-admin-slug-column dentro de /mu-plugins/.
  3. Dentro dela, crie o arquivo neodoor-admin-slug-column.php e cole o código acima.
  4. Não é necessário ativar nada – MU-Plugins carregam automaticamente.
  5. Desative e remova o plugin original admin-slug-column da lista de plugins.

Teste

Acesse Posts > Todos os posts ou Páginas > Todas as páginas. Você verá uma nova coluna chamada “Slug” exibindo o slug de cada item.

Observação: O slug é o nome amigável que aparece na URL (ex: /meu-post/).

Registro no caderno

Data:

Plugins substituídos: admin-slug-column

Compatibilidade: PHP 8.4 testado com sucesso.

Média: 3.0 (21 votos)