register_taxonomy()
iş için bir araçtır. Kodeks'den:
Bu işlev bir sınıflandırma ekler veya üzerine bir sınıflandırma ekler.
Bir seçenek kopyalamak register_taxonomy()
$args
ve değiştirmek olabilir. Ancak bu, orijinal register_taxonomy()
kodda gelecekte yapılacak değişikliklerin üzerine yazılacağı anlamına gelir.
Bu nedenle, en azından bu durumda, orijinal argümanları almak, değiştirmek istediklerimi değiştirmek ve daha sonra sınıflandırmayı yeniden kaydetmek tercih edilir. Bu çözüm için ilham, bu özel mesaj türleri hakkında benzer bir sorunun cevabında @Otto'ya gider .
Kullanımı people
özel yazı alanı ve people_category
örnekten sınıflandırma, bu yapacağım:
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 );
Yukarıda üçüncü register_taxonomy()
argüman beklenen dizi türünü tahmin unutmayın. Bir veya ile başa çıkabilen register_taxonomy()
kullanımlar olarak wp_parse_args()
bu kesinlikle gerekli değildir . Dedi ki, 'ın bir şekilde sunulması gerekiyordu bu bana doğru geliyor, böylece Kodeksi'ne uygun.object
array
register_taxonomy()
$args
array