Je travaille dans un thème enfant et je ne souhaite donc pas modifier le fichier qui enregistre un portefeuille CPT sur mon site. J'ai utilisé un plugin pour changer le nom de Portfolio en Stories, mais le plugin ne donne pas d'option pour le slug.
J'ai essayé d'utiliser la fonction suivante:
function change_slug_of_post_type_portfolio() {
register_post_type('portfolio', array('rewrite' => array ('slug' => 'stories',)));
}
add_action('init', 'change_slug_of_post_type_portfolio', 20);
Mais cela supprime complètement Portfolio de la barre latérale d'administration WordPress.
Le filtre register_post_type_args
peut être utilisé pour modifier les arguments de type post:
add_filter( 'register_post_type_args', 'wpse247328_register_post_type_args', 10, 2 );
function wpse247328_register_post_type_args( $args, $post_type ) {
if ( 'portfolio' === $post_type ) {
$args['rewrite']['slug'] = 'stories';
}
return $args;
}
La réponse de @ dave-romsey n'a pas fonctionné pour moi, PHP n'arrêtait pas de me dire Warning: Cannot use a scalar value as an array in /path/to/functions.php
. J'ai donc suivi la méthode array_merge
.
Fonction complète à ajouter au fichier functions.php
du thème de votre enfant:
function update_portfolios_slug( $args, $post_type ) {
if ( 'portfolios' === $post_type ) {
//$args['rewrite']['slug'] = 'presidentes';
$my_args = array(
'rewrite' => array( 'slug' => 'presidentes', 'with_front' => false )
);
return array_merge( $args, $my_args );
}
return $args;
}
add_filter( 'register_post_type_args', 'update_portfolios_slug', 10, 2 );
Après avoir téléchargé votre code, n'oubliez pas "d'actualiser" vos liens permanents en allant dans Paramètres> Permaliens et en appuyant sur Enregistrer les modifications .
À votre santé.