今日私は サードパーティのプラグイン によって既に登録されているカスタム分類法の議論を変更する必要がありました。特に、show_admin_column
引数をtrue
に設定し、それが単なる分類スラッグではないようにrewrite
スラッグを変更したいと思いました。この場合、それは "People Category"カスタム分類法を持つ "People"投稿タイプでした。
私はこれが前に尋ねられなかったので驚きました、それでここに質問と答えがあります。
register_taxonomy()
は仕事のためのツールです。コーデックスから:
この機能は分類を追加または上書きします。
1つの選択肢は、register_taxonomy()
$args
をコピーして修正することです。しかし、それは元のregister_taxonomy()
コードへの将来の変更が上書きされることを意味します。
したがって、少なくともこの場合は、元の引数を取得し、変更したい引数を変更してから、分類法を再登録することをお勧めします。この解決策のためのインスピレーションはこれで@Ottoに行きます カスタム投稿タイプについての同様の質問への答え 。
例のpeople
カスタム投稿タイプとpeople_category
分類法を使用して、これを行います。
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 );
上記のことに注意してください。私は3番目のregister_taxonomy()
引数を期待される配列型に型キャストします。 register_taxonomy()
はobject
またはarray
を扱うことができる wp_parse_args()
を使用するので、これは厳密には必要ありません。とは言っても、Codexによるとregister_taxonomy()
の$args
はarray
として投稿されるはずなので、これは私にとって正しいことです。