Executando verificação de segurança...
2

Wordpress: Custom Post Type: Como renomear um CPT existente

Problema

Vamos supor que você criou um CPT: old_slug livro - https://seusite.local/livro e cadastrou vários livros e agora deseja alterar o nome do CPT new_slug para livros ( no plural ) https://seusite.local/livros

OLD CPT LIVRO

Obs: Se você não usou plugins para criar seu CPT, provavelmente seu código será semelhante a esse:

<?php
add_action( 'init', 'mbrasil_add_custom_post_type' );
function mbrasil_add_custom_post_type() {

register_post_type( 'livro',
    array(
	'labels' => array(
            'name' => __( 'Livros', 'wpsites' ),
            'singular_name' => __( 'Livro', 'wpsites' ),
	),
	'has_archive'  => true,
	'hierarchical' => true,
        'menu_icon'    => 'dashicons-admin-users',
	'public'       => true,
	'rewrite'      => array( 
                                'slug' => 'livro', 
                                'with_front' => false
                                ),
	'supports'     => array( 
                                'title', 
                                'editor', 
                                'author', 
                                'thumbnail', 
                                'excerpt', 
                                'trackbacks', 
                                'custom-fields', 
                                'revisions', 
                                'page-attributes' ),
        'menu_position' => 2,
    ));
}

NEW CPT LIVROS

  • register_post_type( 'livros' ...
  • 'rewrite' => array( 'slug' => 'livros', ...
<?php
add_action( 'init', 'mbrasil_add_custom_post_type' );
function mbrasil_add_custom_post_type() {

register_post_type( 'livros',
    array(
	'labels' => array(
            'name' => __( 'Livros', 'wpsites' ),
            'singular_name' => __( 'Livro', 'wpsites' ),
	),
	'has_archive'  => true,
	'hierarchical' => true,
        'menu_icon'    => 'dashicons-admin-users',
	'public'       => true,
	'rewrite'      => array( 
                                'slug' => 'livros', 
                                'with_front' => false
                                ),
	'supports'     => array( 
                                'title', 
                                'editor', 
                                'author', 
                                'thumbnail', 
                                'excerpt', 
                                'trackbacks', 
                                'custom-fields', 
                                'revisions', 
                                'page-attributes' ),
        'menu_position' => 2,
    ));
}

SQL

Obs: Para ter acesso a seus livros, será necessário rodar o script sql abaixo em seu banco de dados.

UPDATE wp_posts SET post_type = 'new_slug' WHERE post_type = 'old_slug';

Gostou? deixe seu comentário e sugestões.

Carregando publicação patrocinada...
1

Ótima dica e pra acrescentar: evitando editar diretamente o functions.php eu costumo separar os códigos usando o plugin WPCode. Da pra criar os CPT por ai, selecionar como impelementar e ainda escolher onde seu código vai ser executado (front, bak, painel, etc).

1
1

Sim, eu vi essa dica! É que com o plugin me deu mais opções de funcionalidade pra setar onde eu quero que o código funcione especificamente - além de usar pra outras coisas/tipos de código também!