今日、サードパーティのプラグインによってすでに登録されているカスタム分類の引数を変更する必要がありました。具体的には、show_admin_column引数を設定しtrueてrewriteスラッグを変更し、分類学のスラッグではないようにしました。この場合、「People Category」カスタム分類を持つ「People」投稿タイプでした。
これは以前は聞かれなかったことに驚いたので、ここに質問と回答があります。
今日、サードパーティのプラグインによってすでに登録されているカスタム分類の引数を変更する必要がありました。具体的には、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()引数を予想される配列型に型キャストすることに注意してください。これは、or を処理できるregister_taxonomy()用途として厳密には必要ありません。言った、のはとして提出することになっている、これは私に右に感じるので、コーデックスによります。wp_parse_args()objectarrayregister_taxonomy()$argsarray
'people_category'元の分類法と同じスラッグ(例:)を使用して、上書きするようにしてください。