register_taxonomy()
ist das Werkzeug für den Job. Aus dem Kodex:
Diese Funktion fügt eine Taxonomie hinzu oder überschreibt sie.
Eine Möglichkeit wäre, die zu kopieren register_taxonomy()
$args
und zu ändern. Dies würde jedoch bedeuten, dass zukünftige Änderungen des ursprünglichen register_taxonomy()
Codes überschrieben würden.
Daher ist es zumindest in diesem Fall vorzuziehen, die ursprünglichen Argumente abzurufen, die zu ändernden zu ändern und dann die Taxonomie neu zu registrieren. Die Inspiration für diese Lösung geht an @Otto in dieser Antwort auf eine ähnliche Frage zu benutzerdefinierten Beitragstypen .
Verwendung der people
benutzerdefinierten Beitragstyp und die people_category
Taxonomie aus dem Beispiel:
function wpse_modify_taxonomy() {
// get the arguments of the already-registered taxonomy
$people_category_args = get_taxonomy( 'people_category' ); // returns an object
// make changes to the args
// in this example there are three changes
// again, note that it's an object
$people_category_args->show_admin_column = true;
$people_category_args->rewrite['slug'] = 'people';
$people_category_args->rewrite['with_front'] = false;
// re-register the taxonomy
register_taxonomy( 'people_category', 'people', (array) $people_category_args );
}
// hook it up to 11 so that it overrides the original register_taxonomy function
add_action( 'init', 'wpse_modify_taxonomy', 11 );
Beachten Sie, dass ich das dritte register_taxonomy()
Argument auf den erwarteten Array-Typ typisiert habe. Dies ist nicht unbedingt erforderlich, da register_taxonomy()
Verwendungen, wp_parse_args()
die mit einem object
oder umgehen können array
. Das heißt, register_taxonomy()
's $args
sollen array
laut Kodex als eingereicht werden , also fühlt sich das für mich richtig an.