register_taxonomy()é a ferramenta para o trabalho. Do Codex:
Esta função adiciona ou substitui uma taxonomia.
Uma opção seria copiar register_taxonomy() $argse modificá-los. No entanto, isso significaria que quaisquer alterações futuras no register_taxonomy()código original seriam substituídas.
Portanto, pelo menos nesse caso, é preferível obter os argumentos originais, modificar os que quero alterar e registrar novamente a taxonomia. A inspiração para esta solução está no @Otto nesta resposta a uma pergunta semelhante sobre tipos de postagem personalizados .
Usando o peopletipo de postagem personalizada e a people_categorytaxonomia do exemplo, isso será feito:
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 );
Observe acima que eu digitei o terceiro register_taxonomy()argumento no tipo de matriz esperado. Isso não é estritamente necessário, pois os register_taxonomy()usos wp_parse_args()que podem manipular um objector array. Dito isto, register_taxonomy()'s $argsé suposto ser submetido como um arrayacordo com o Codex, de modo que este se sente bem para mim.