Altera o tamanho do tipo de postagem personalizado registrado no tema filho

4

Renomei com êxito um tipo de postagem personalizado registrado pelo meu tema pai no meu tema filho usando este método . O problema é que meus permalinks não mudaram. Então, quando eu mudar portfolio para homepage e usar a estrutura permalink /%category%/%postname%/ minhas URLs ainda parecerão mysite.com/portfolio/page/ em vez de mysite.com/ homepage / page /.

este é o código que estou usando para alterar meu CPT:

add_action( 'wp_loaded', 'wpse_19240_change_home_labels', 20 );

function wpse_19240_change_home_labels()
{
global $wp_post_types;
$b = 'portfolio';

if ( empty ( $wp_post_types[ $b ] )
    or ! is_object( $wp_post_types[ $b ] )
    or empty ( $wp_post_types[ $b ]->labels )
    )
    return;

$wp_post_types[ $b ]->labels->name               = 'Sliders';
$wp_post_types[ $b ]->labels->singular_name      = 'Slider';
$wp_post_types[ $b ]->labels->add_new_item       = 'Add New Slider';
$wp_post_types[ $b ]->labels->edit_item          = 'Edit Slider';
$wp_post_types[ $b ]->labels->new_item           = 'New Slider';
$wp_post_types[ $b ]->labels->view_item          = 'View Slider';
$wp_post_types[ $b ]->labels->search_items       = 'Search Sliders';
$wp_post_types[ $b ]->labels->not_found          = 'No sliders found.';
$wp_post_types[ $b ]->labels->not_found_in_trash = 'No sliders found in Trash.';
$wp_post_types[ $b ]->labels->menu_name          = 'Homepage Sliders';
$wp_post_types[ $b ]->labels->all_items          = 'All Sliders';
$wp_post_types[ $b ]->labels->add_new            = 'Add New Slider';
$wp_post_types[ $b ]->labels->name_admin_bar     = 'Slider';
}

Eu mudei o slug com sucesso usando:

function change_slug_of_post_type_portfolio() {
    register_post_type('portfolio', array('rewrite' => array ('slug' => 'homepage',)));
}
add_action('init', 'change_slug_of_post_type_portfolio', 20);

Mas agora recebo um erro 404 quando navego para a página gerada pelo sistema: meusite.com/homepage/página /

Eu fiz um single-homepage.php e tentei adicionar flush_rewrite_rules(); como recomendado em este post mas sem sucesso.

    
por Heather 29.06.2015 / 08:01

1 resposta

6

com o seu código você redefine completamente o seu CPT em vez de apenas modificar a lesma talvez isso mude o acesso público

tente isto:

$args = get_post_type_object("portfolio");
$args->rewrite["slug"] = "homepage";
register_post_type($args->name, $args);
    
por mmm 29.06.2015 / 08:07