Ich arbeite in einem untergeordneten Thema, daher möchte ich die Datei, in der ein Portfolio-CPT auf meiner Website registriert wird, nicht bearbeiten. Ich habe ein Plugin verwendet, um den Namen von Portfolio in Stories zu ändern, aber das Plugin bietet keine Option für den Slug.
Ich habe versucht, die folgende Funktion zu verwenden:
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);
Portfolio wird jedoch vollständig aus der WordPress-Admin-Seitenleiste entfernt.
Der register_post_type_args
Filter kann verwendet werden, um Argumente vom Typ post zu ändern:
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;
}
@ Dave-Romsey Antwort funktionierte nicht für mich, PHP sagte mir immer wieder Warning: Cannot use a scalar value as an array in /path/to/functions.php
Also ging ich den array_merge
Weg.
Vollständige Funktion, die Sie zum Thema Ihres Kindes hinzufügen müssen functions.php
file:
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 );
Vergessen Sie nach dem Hochladen Ihres Codes nicht, Ihre Permalinks zu "aktualisieren", indem Sie zu Einstellungen> Permalinks gehen und Änderungen speichern drücken.
Prost.