あまり需要はないかと思いますが、メモ。

カスタム投稿タイプやカスタムタクソノミーは、それらを追加するための関数(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 );

コードを追加したら、

  • カスタムタクソノミースラグをここに入れる
  • 変更するパラメーター名
  • 変更内容

の部分をご自身の条件等へ変更して保存します。