
JetEngineのCPT (Custom Post Type) 設定に関して「Register Query Var」と「Rewrite」オプションの設定は、URL構造と検索エンジンのインデックスに影響を与えます。それぞれの設定が持つ意味を整理し、どのように活用できるかを見ていきましょう。
Post Type とは
「Post type」とは、WordPressでコンテンツの種類(type)を区別する概念です。
WordPressをコンテンツ倉庫と見なすと、「Post type」は倉庫内の「コンテンツボックスの種類」と考えることができます。WordPressは以下のようにPost Typeを内部的に区別して使用しています。
基本的に「Page」と「Post」に分けており、「Page」はウェブページに関するHTMLコードを保存し、「Post」はブログや記事などの内容を作成してウェブページのヘッダー/フッターデザインの間に表示する通常の「記事」を保存する目的で使用されます。WooCommerceをインストールしてWordPressでショッピングサイトを運営する場合は、「product」というPost Typeを追加で定義して使用します。
- 📄
post
= ブログ記事ボックス - 📃
page
= 静的情報(紹介/お問い合わせなど)ボックス - 📷
attachment
= 画像やファイルボックス - 🛒
product
= ショッピングサイトの商品ボックス(例:WooCommerce) - 🎬
movie
= 映画情報ボックス(カスタムCPT)
サイト運営者や開発者が他の目的でPost Typeを定義して使用できるのではないかという疑問が湧いてこないでしょうか?他の目的で活用するPost Typeを定義して使用できるのが、これを「Custom Post Type (CPT)」と言います。
Custom Post Type とは
なぜ必要なのか? (Why)
基本のWordPressは記事(Post)
とページ(Page)
の2種類のコンテンツを提供します。しかし、次のような場合にはこれだけでは不十分です:
- ブログ記事以外の製品、ポートフォリオ、イベント、レビュー、映画、講義などのコンテンツを扱いたいとき
- それぞれのコンテンツタイプに固有のフィールド、デザイン、管理方法が必要なとき
- 特定のコンテンツを分けて管理、分類、出力したいとき
📌 例:
- 映画レビューサイト → 映画(Movie) CPT、俳優(Actor) CPT作成
- 教育プラットフォーム → 講義(Lesson) CPT、講師(Teacher) CPT
- 企業ウェブサイト → ポートフォリオ(Portfolio)、プロジェクト(Project)
誰が使うのか? (Who)
- ウェブ開発者またはウェブエージェンシー
- WordPressのカスタマイズが必要なデザイナー
- コンテンツを細分化したいマーケティングチーム
- 機能中心のウェブサイトを作りたいスタートアップまたは企業
いつ使うのか? (When)
- サイトに複数のコンテンツタイプが必要なとき
- 各コンテンツごとにカスタムフィールド、テンプレート、分類基準が異なる必要があるとき
- REST API、カスタム管理画面などと連携して専門的な機能を作るとき
- Elementor、JetEngine、ACFなどで高度なサイトを作るとき
どのように定義するのか
ウェブ開発者はさまざまな方法で定義できます。CPTはWordPressがデータ保存に使用するデータベース構造をそのまま使用し、wp_postsというテーブルのpost_typeフィールドに記録する値を「page」、「post」、「attachment」などと区別するだけで済むからです。
通常は、よく作られたプラグインを使用すれば良いのです。COOSS.NETでは、CrocoblockのJetEngineを使用して簡単にCustom Post Typeを定義して使用しています。
例えば、私たちCOOSS.NETでは、「コインに関するAI取引意見」を「buysell-coin」という名前の別のPost Typeとして定義して使用しています。[ BTC AI取引 – 2025-03-28 購入/売却/ホールド決定理由 ]のように通常の記事とは異なる形で表示する目的と、別のPost Typeとして指定することで管理が楽になるためです。
以下はJetEngineでCPTを定義するダイアログボックスです。

JetEngineのPost Type設定を理解する
この文章ではカスタムポストタイプ(CPT)を設定する際、「Register Query Var」と「Rewrite」設定についてより深く理解していきます。

Register Query Varとは?
Register Query VarはWordPressの内部クエリシステムと接続されます。URLクエリ文字列の特定の変数を通じてポストタイプを識別したりフィルタリングしたりできるようにします。
このオプションが有効になっていると、URLリクエストを通じてCPTを取得することが可能になります。
例えば、?の後に変数値(query variable)を入れる形の以下のアドレス形式で記事を表示できるようになります。
https://example.com/?your_post_type_slug=post_slug
COOSS.NETページを例に挙げると、以下のような形式のアドレスも機能します。(クリックしてみてください)。
https://cooss.net/?buysell-coin=btc-25-03-28-02-00
JetEngineの設定でRegister Query Var
有効化時の影響
Register Query Varを有効にすると:
- 内部クエリシステムでアドレスバーに該当のポストタイプを認識します。
- これにより、URLパラメータを使用した直接クエリやWP_Queryを利用したアクセスが可能になります。
PHPコードで次のように呼び出せるようになり、
$query = new WP_Query( [
'my_custom_post_type' => 'post_slug'
] );
アドレスバーでは、以下のようなアドレスで該当の記事を表示できるようになります。
https://cooss.net/?buysell-coin=btc-25-03-28-02-00
無効化時の影響
無効化すると該当ポストタイプに対するクエリ変数を使用できなくなり、URLまたはWP_Queryを通じた直接クエリが不可能になります。一般的にREST APIを通じてのみアクセスできるCPTであればquery_var登録は必要ないかもしれません。
Rewrite設定とは?
Rewriteオプションは、簡単に記憶できる形式のURLを生成するために使用されます。これにより、検索エンジンとユーザーにとって親しみやすいURL構造を提供します。
例えば、Rewrite設定が有効になると、以下のようなパスでもアクセスできるようになります。
https://domain.com/post_type_slug/post_slug
Rewrite設定の必要性
Rewrite設定がない場合、基本的に`https://domain.com/?post_type=post_type_slug&p=post_id`のようなURLだけを使用しなければならず、これは検索エンジン最適化の観点から不利です。
COOSS.NETでも最初はこのオプションを有効にしていませんでした。しかし、検索エンジンにインデックスされたページを見てみると、検索エンジンは「https://domain.com/post_type_slug/post_slug」と記録されていることが分かりました。しかし、このアドレスをクリックすると、WordPressがアドレスを認識できず、存在しないページというエラーメッセージが表示されました。現在はRewrite設定も有効にすることで、クエリ形式のアドレスと検索エンジンがインデックスする形式のアドレスの両方で正常にページが出力されています。
二つの設定の総合的活用
検索エンジンがインデックスする方法でのエラーを確認しながら、それぞれの設定をどのように組み合わせれば良いかを理解することも必要だと思い、整理してみました。
概念の要約
Register Query Var
:/?post_type_slug=slug-name
形式のクエリストリングアクセスを許可Rewrite
:/post_type_slug/slug-name
形式のパーマリンク(URL再作成)を許可
設定の組み合わせ (Query Var + Rewrite)
- On + On : クエリ方式 + 階層的パーマリンクサポート (ほとんどの公開CPTに適合)
- Off + On :
クエリ方式+ 階層的パーマリンクサポート (公開ウェブサイトに適合) - On + Off : クエリ方式 +
階層的パーマリンクサポート(開発用、テスト用CPT) - Off + Off :
クエリ方式 + 階層的パーマリンクサポート(管理者用、システム内部用CPT)
この表を参考にして、各サイトのニーズに合わせて設定を調整できます。
状況に応じた推奨 (Query Var + Rewrite)
✅ 1. ブログ、ポートフォリオ、商品、通知などの公開コンテンツ
- On + On
- ユーザーフレンドリーなURL + 柔軟なクエリアクセスが可能 → 検索エンジンインデックスも自然に動作
https://yourdomain.com/portfolio/my-design
https://yourdomain.com/?portfolio=my-design
✅ 2. 管理専用資料保存用CPT
- Off + Off
- システムログ、内部API結果保存用CPTなど
- 外部アクセスをブロック
- REST APIまたはバックエンド専用でのみ使用
✅ 3. REST API専用CPT
- Off + 状況に応じて選択
- RESTでのみ活用される場合、不必要なパスの公開を防止
結論としてほとんどの一般的な公開用CPTでは両方ともOnに設定するのが最も柔軟で安全であり、内部専用またはAPI専用CPTであれば目的に応じて無効化して不必要な露出を防ぐ方がセキュリティやパフォーマンス上良いでしょう。
注意事項
Rewrite Onに設定した後はパーマリンク設定ページで何も変更しない状態で「変更を保存」を一度クリックする必要があります。
上記の設定はJetEngineで指定していますが、Rewriteルールの適用はWordPressの管理に従うため、このようにした後でないとrewriteルールがWordPressに登録されません。
[Register Query Var] : WordPress URLのクエリ文字列で特定の変数を通じてポストタイプを識別する機能。
[Rewrite] :ユーザーフレンドリーな形でURL構造を変更する機能。
[404エラー] :要求されたページが存在しないときに発生するエラーメッセージ。
[Google Search Console] :ウェブサイトのパフォーマンスとインデックス状況をモニタリングするGoogleのツール。