あまり需要はないかと思いますが、メモ。
カスタム投稿タイプやカスタムタクソノミーは、それらを追加するための関数(register_post_type/register_taxonomy)でパラメーター($args)を使っていろいろな機能を有効/無効にしたりするようになっています。
参考:カスタム投稿タイプ追加(register_post_type)、カスタムタクソノミー追加(register_taxonomy)
コードを理解していて、functions.phpへ自身で作ったカスタム投稿タイプ(タクソノミー)であれば、それらのパラメーターは自身で修正すればいいのですが、プラグインやテーマで投稿タイプ(タクソノミー)が追加されている場合、何か変化を加えたいときにはちょっと困ります。
テーマやプラグインのプログラムを変更すれば済む話..ではなく、プラグインもテーマもある程度の頻度で更新されて、変更したものは上書きされて元に戻ってしまうので、更新のたびにチェックして直す..なんてちょっと大変ですね。
そこで、子テーマのfunctions.phpへコードを追加して、テーマやプラグインが更新されても、テーマやプラグインで管理するカスタム投稿タイプ(タクソノミー)のパラメーターが強制的に書き換わるようにする方法を紹介します。
カスタム投稿タイプ・カスタムタクソノミーのパラメーターを強制変更する方法
本ページで紹介する方法では子テーマのfunctions.phpへコードを追記する作業が発生します。スキルに不安な方や、万が一トラブルになった場合に対処が不安な方は、避けた方がよいでしょう
カスタム投稿タイプ(タクソノミー)スラグを確認する方法
まずは変更したいカスタム投稿タイプやカスタムタクソノミーのスラグ(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 );
コードを追加したら、
- カスタムタクソノミースラグをここに入れる
- 変更するパラメーター名
- 変更内容
の部分をご自身の条件等へ変更して保存します。