WordPress で独自の投稿タイプ(CPT: Custom Post Type)を作成する際、register_post_type()
関数を利用します。
しかし、このとき指定する 投稿タイプキー(第一引数)には 1〜20文字の制限 があることをご存じでしょうか?
投稿タイプキーの制限とは?
投稿タイプキーは、WordPress が内部でカスタム投稿タイプを識別するための名前です。
次のルールがあります。
- 1文字以上20文字以内
- 英小文字とアンダースコア(
_
)のみ使用可能 - 大文字・スペース・日本語は使えない
もし制限を超えた場合、以下のような Notice が表示されます。
Notice: 関数 register_post_type が誤って呼び出されました。
投稿タイプ名の長さは1から20文字でなければいけません。
具体例
たとえば「レシピコレクション」というカスタム投稿タイプを作りたいとします。
キーを長く指定してしまうとエラーになります。
NG例(キーが長すぎる)
register_post_type('my_favorite_recipe_collection_posts', [
'label' => 'レシピコレクション',
'public' => true,
]);
このキーは 20文字を超えているため、登録できません。
OK例(短縮したキー)
register_post_type('recipes', [
'label' => 'レシピコレクション',
'public' => true,
]);
このように、内部キーは短くシンプルにして、管理画面に表示される「ラベル」で正式名称を表現するのが正しい方法です。
これにより、システム上の安定性と、ユーザーにとっての分かりやすさを両立できます。
なぜ制限があるのか?
投稿タイプキーは WordPress 内部で幅広く利用されます。
- データベースのクエリ変数
- URL リライトルールの識別子
- 管理画面での参照
長すぎるキーを使用すると、内部処理やデータベース構造に不具合を生じる恐れがあるため、WordPress が制限を設けています。
まとめ
- 投稿タイプキーは 1〜20文字以内
- 使用できるのは 英小文字とアンダースコアのみ
- キーは短く、ラベルで正式名称を表示するのがベストプラクティス
コメント