register_taxonomy()
adalah alat untuk pekerjaan itu. Dari Codex:
Fungsi ini menambah atau menimpa taksonomi.
Salah satu opsi adalah menyalin register_taxonomy()
$args
dan memodifikasinya. Namun, itu berarti bahwa setiap perubahan di masa depan dengan register_taxonomy()
kode asli akan ditimpa.
Oleh karena itu, setidaknya dalam kasus ini, lebih baik mendapatkan argumen asli, memodifikasi argumen yang ingin saya ubah, dan kemudian mendaftar ulang taksonomi. Inspirasi untuk solusi ini ditujukan ke @Otto dalam jawaban ini untuk pertanyaan serupa tentang jenis posting kustom .
Menggunakan people
jenis pos kustom dan people_category
taksonomi dari contoh, ini akan melakukannya:
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 );
Catatan di atas bahwa saya register_taxonomy()
mengetik argumen ketiga ke jenis array yang diharapkan. Ini tidak sepenuhnya diperlukan karena register_taxonomy()
penggunaan wp_parse_args()
yang dapat menangani object
atau array
. Yang mengatakan, register_taxonomy()
's $args
seharusnya disampaikan sebagai array
menurut Codex, jadi ini terasa tepat untuk saya.