あまり需要はないかと思いますが、メモ。
カスタム投稿タイプやカスタムタクソノミーは、それらを追加するための関数(register_post_type/register_taxonomy)でパラメーター($args)を使っていろいろな機能を有効/無効にしたりするようになっています。
参考:カスタム投稿タイプ追加(register_post_type)、カスタムタクソノミー追加(register_taxonomy)
コードを理解していて、functions.phpへ自身で作ったカスタム投稿タイプ(タクソノミー)であれば、それらのパラメーターは自身で修正すればいいのですが、プラグインやテーマで投稿タイプ(タクソノミー)が追加されている場合、何か変化を加えたいときにはちょっと困ります。
テーマやプラグインのプログラムを変更すれば済む話..ではなく、プラグインもテーマもある程度の頻度で更新されて、変更したものは上書きされて元に戻ってしまうので、更新のたびにチェックして直す..なんてちょっと大変ですね。
そこで、子テーマのfunctions.phpへコードを追加して、テーマやプラグインが更新されても、テーマやプラグインで管理するカスタム投稿タイプ(タクソノミー)のパラメーターが強制的に書き換わるようにする方法を紹介します。
コードを使用する前に、ここをクリックして注意事項をご確認ください
本ページで掲載しているコードは、以下に了承した上で使用ください
- コードは商用・非商用問わず自由に使っていただいて構いませんが、コード追加による不具合やトラブルが発生しても当方では一切責任を負いません
- コードは有効化しているテーマのfunctions.php、style.cssなどへ追加することで機能します。それらのファイルへの変更を行うことに不安のある方は使用しないでください
- コードは本ページの公開日時点で私の環境において動作したものです。WordPressバージョン他環境の違いによって動作しないことがあります
- コードは、セキュリティ、コードの正確さなどにおいて完全なものではありません。中には紹介するコードを簡略化するために省略している部分があるものもありますので、ご自身でコードを十分に検証し、必要な部分の編集を行った上で使用するようにしてください
- 掲載しているのは参考コードです。自身の環境に合わせるための編集はご自身で対応いただく必要があります(コメント欄等から質問いただいても基本回答は致しません)
- 掲載しているコードの転載を禁じます(SNSで紹介いただいたり、本ページへのリンクを張っていただくことは大歓迎です)
カスタム投稿タイプ・カスタムタクソノミーのパラメーターを強制変更する方法
カスタム投稿タイプ(タクソノミー)スラグを確認する方法
まずは変更したいカスタム投稿タイプやカスタムタクソノミーのスラグ(IDのようなサイト内で一意の文字列)を調べなければなりません。
調べ方は大きく2つありますので順に紹介します。
管理画面で調べる方法
テーマやプラグインがカスタム投稿タイプやカスタムタクソノミーを追加した場合、大抵それらの一覧などが表示できるよう、管理画面上にメニューが追加されます。
実際に開いてみると、アドレスバーに表示されるURLの中にある以下の部分でスラグを調べることができます。
- カスタム投稿タイプのスラグ/post_type=〇〇
- カスタムタクソノミーのスラグ/taxonomy=〇〇
テーマ(プラグイン)などのソースコードから調べる方法
テーマ(プラグイン)エディタを開いて、register_post_typeやregister_taxonomyと記述されている箇所を1つ1つ調べてもよいですが、「String Locator」というプラグインを1つ追加することで簡単に調べることができます。
目的のテーマやプラグインを指定して、
- カスタム投稿タイプなら「register_post_type」
- カスタムタクソノミーなら「register_taxonomy」
というキーワードで検索すればよいでしょう。
カスタム投稿タイプのパラメーター強制変更する方法
カスタム投稿タイプスラグが分かったら、変更するパラメーターを調べ、以下のコードを子テーマのfunctions.phpへ追加します。
※パラメーターについてはカスタム投稿タイプ追加(register_post_type)の公式ページで調べてください
function ha_change_custom_post_type_args( $args, $post_type ) {
// ターゲットとなるカスタム投稿タイプ
if ( 'カスタム投稿タイプスラグをここに入れる' !== $post_type ) {
return $args;
}
// パラメーターを変更
$args['変更するパラメーター名'] = 変更内容;
// Return
return $args;
}
add_filter( 'register_post_type_args', 'ha_change_custom_post_type_args', 10, 2 );
コードを追加したら、
- カスタム投稿タイプスラグをここに入れる
- 変更するパラメーター名
- 変更内容
の部分をご自身の条件等へ変更して保存します。
カスタムタクソノミーのパラメーターを強制変更する方法
カスタムタクソノミースラグが分かったら、変更するパラメーターを調べ、以下のコードを子テーマのfunctions.phpへ追加します。
※パラメーターについてはカスタムタクソノミー追加(register_taxonomy)の公式ページで調べてください
function ha_change_custom_taxonomy_args( $args, $taxonomy ) {
// ターゲットとなるカスタムタクソノミー
if ( 'カスタムタクソノミースラグをここに入れる' !== $taxonomy ) {
return $args;
}
// パラメーターを変更
$args['変更するパラメーター名'] = 変更内容;
// Return
return $args;
}
add_filter( 'register_taxonomy_args', 'ha_change_custom_taxonomy_args', 10, 2 );
コードを追加したら、
- カスタムタクソノミースラグをここに入れる
- 変更するパラメーター名
- 変更内容
の部分をご自身の条件等へ変更して保存します。











